home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / bbs_misc / kbbs20q.zip / UPDATES.DOC < prev   
Text File  |  1996-04-02  |  113KB  |  3,055 lines

  1.  
  2. ██   ██ ██████▄ ██████▄ ▄█████▄ ███████ ▄██████
  3. ██   ██ ██▄▄▄██ ██   ██ ██▄▄▄██   ▐█▌   ██▄▄▄▄
  4. ██   ██ ██▀▀▀▀  ██   ██ ██▀▀▀██   ▐█▌   ██▀▀▀▀
  5. ▀█████▀ ██      ██████▀ ██   ██   ▐█▌   ▀██████
  6.  
  7. A History of the changes made to KBBS, starting with version Z.1816
  8. (C) Copyright 1995, 1996 Anderson Research
  9.  
  10.  
  11. 2.20Z.20p UPDATE releases
  12. ---------
  13.   (These updates may be downloaded by registered sysops by typing
  14.    UPDATE at the Megalopolis Downtown menu)
  15.  
  16.  
  17. Internal compile number 30102:
  18.  
  19.   (Note: Qcrasher v1.2 was released with this version)
  20.  
  21.   SYSTEM
  22.  
  23.     KBBS will now perform a memory block transfer benchmark test when
  24.     started up (it takes one tenth of a second), then it sets the
  25.     memory transfer block within KBBS's cache support to the optimum
  26.     size for maximum performance.  This has improved the mail tossing
  27.     speed on the Megalopolis work nodes by 100%.
  28.  
  29.  
  30.   KSEARCH² IS NOW ONLINE
  31.  
  32.     The second generation of super-fast search indexes is now a part
  33.     of KBBS.  Ksearch² boasts the following features:
  34.  
  35.       * Building the Ksearch² indexes is extremely fast-- as little
  36.         as 5% of the time that Ksearch used to take.
  37.  
  38.       * Although a little slower (1 second to search instead of 0.1)
  39.         the new Ksearch² finds partial words instead of only complete
  40.         words.  For example, "Game" will find Game, Games, Gamers,
  41.         Doorgame, etc.  Even though the search is still so fast, we
  42.         added a spinning cursor to the search engine so the user
  43.         doesn't fall asleep during that 1 second wait.
  44.  
  45.       * The Ksearch² indexes are a lot smaller on the disk than the
  46.         previous Ksearch indexes, so you'll save a little disk space
  47.         when you rebuild all of your indexes.
  48.  
  49.       * The search keys are now highlighted in the file descriptions.
  50.         KBBS uses the "Item Highlight" color to highlight words
  51.         in the descriptions.
  52.  
  53.     A fix was made to allow reasonable searches on single letter
  54.     words, such as "C" (the programming language).  No partial
  55.     search is performed on single letter words.
  56.  
  57.  
  58.   FILE UTILITIES
  59.  
  60.     The FILE_ID.DIZ updater that creates/updates the FILE_ID.DIZ
  61.     when you edit the description will now properly maintain the
  62.     archive date and update the file size info in the file record.
  63.  
  64.     The ALT-V viewer will now view tagged files collectively if
  65.     requested.  This makes it easier to look at multi-file
  66.     archives.
  67.  
  68.  
  69.   FILE AREA ONLINE
  70.  
  71.     We think we have finally fixed the file display bugs so it will
  72.     display a full screen of files each time instead of more or less.
  73.  
  74.  
  75.   FTS
  76.  
  77.     Got rid of duplicate file send bug in compile number 30091
  78.  
  79.     Delete after send now working properly.
  80.  
  81.     Problems in switching on/off TIC areas in FileFix is now
  82.     fixed, including the %list and %query options.
  83.  
  84.     A new FTS User spreadsheet has been added to the Users menu
  85.     in the FTS module, making it a lot easier to scan through the
  86.     FTS users' settings and make changes.
  87.  
  88.  
  89.   MAIL
  90.  
  91.     The personal mail reading bug(s) have been fixed (when it
  92.     tells you that you have personal mail, it doesn't skip over
  93.     it all now).  Hopefully this fix will stick.
  94.  
  95.  
  96.  
  97. Internal compile number 29041:
  98.  
  99.   FTS
  100.  
  101.     A rebuilder has been made to rebuild and defragment FTS user
  102.     setup files, found in the FTS Menu's Rebuild menu.
  103.  
  104.     FileFix should NOW be working properly to turn on/off the file
  105.     areas.  Really.  No, Really.
  106.  
  107.     A major rewrite to the queuing system will now allow the Send
  108.     File operations to put files on hold.  Mail will more reliably
  109.     be queued and poll events will more reliably send all files
  110.     intended for a destination.
  111.  
  112.  
  113.  
  114.   SEQ ADDITIONS
  115.  
  116.     A "Hold" option has been made to SENDFTSFILE.  Here is the updated
  117.     documentation clip:
  118.  
  119.     SENDFTSFILE( <address>, <priority>, <path>, <deleteafter>, <message> );
  120.  
  121.       <address> is of type string, in a standard fidonet address
  122.       format of x:yyy/zzz, <path> is of type string.  <priority> is
  123.       of type char:
  124.  
  125.         "I" immediate
  126.         "C" crash (direct, economy time)
  127.         "H" hold
  128.  
  129.       <deleteafter> is of type boolean:  TRUE=delete the file after
  130.       a successful transmission.  <message> is of type boolean: TRUE=
  131.       send a message header to the sysop of the remote system notifying
  132.       of the enclosed file(s).
  133.  
  134.       Adds a SENDFILE command to the queue.  If a queue entry already
  135.       exists to the above system, the sendfile is added to the
  136.       existing entry in order to combine dialout events.
  137.  
  138.  
  139. Internal compile number 29033:
  140.  
  141.   QWK/REP
  142.  
  143.     A message left to @user@ (in upper case) will not crash a QWK
  144.     download now.
  145.  
  146.  
  147.   FTS
  148.  
  149.     AREAFIX wasn't working in the last release of 20p-- it would
  150.     start out assuming the caller had a scrambled mess for a
  151.     conference configuration, make the toggles to those area,
  152.     then save them back.  This is now fixed!
  153.  
  154.     KBBS's "FileFix" compatible processor (named KBBSFile to not
  155.     infring on other authors' trademarks) will accept messages
  156.     to "Raid", "FileFix", "FileMgr" or "KBBSFile"  Send one with
  157.     a message of %help and you'll get a help response a lot like
  158.     the Areafix help response.
  159.  
  160.  
  161. Internal compile number 28901:
  162.  
  163.   FILE AREA
  164.  
  165.     A MAJOR rewrite of the ALT-Q quick change utility in the file
  166.     tree allows you to change every field and more than one field
  167.     at once.  It also loads the tagged or highlighted record,
  168.     moves the files if you change the path, sets the file date,
  169.     updates new file indexes, etc. etc, making it the most
  170.     useful utility in the file tree.
  171.  
  172.     You now must press F2 to edit the FILENAME field in the file
  173.     edit screen.  This prevents accidental changing/erasing of
  174.     the filename.
  175.  
  176.  
  177.   QWK/REP
  178.  
  179.     If an uploaded REP packet is rejected due to mismatched ID,
  180.     the rejection is now logged in the KBBS.LOG.
  181.  
  182.  
  183.   CONFERENCES
  184.  
  185.     If the netmail conference messages are deleted, the netmail
  186.     pointer is automatically reset to 0.
  187.  
  188.  
  189.   SEQ FUNCTIONS/COMMANDS
  190.  
  191.     PAGERON( <datetime> ) :boolean   (function)
  192.  
  193.       <datetime> is of type integer.  This function returns
  194.       TRUE if the pager is scheduled to operate at the
  195.       specified date/time.
  196.  
  197.  
  198. Internal compile number 28841:
  199.  
  200.   FTS
  201.  
  202.     NOTE:  A COMPLETE rewrite of much of the FTS scanner and
  203.            FTS user setup forced us to stand back and test for
  204.            a day before we dared release this version so we
  205.            didn't mess up anyone's setups.  We're pretty confident
  206.            that this version will upgrade without any hesitation
  207.            in your FTS operation.
  208.  
  209.            Everything is working in FTS's TIC support except the
  210.            actual TIC hatching and FILEFIX which will be linked
  211.            in and posted in tomorrow's update.
  212.  
  213.     The FTS user structure has been completely rewritten-- the
  214.     result is a MUCH faster setup picklist, unlimited future
  215.     expansion, and less memory demand.
  216.  
  217.     The TIC area setup has been rewritten to a flat, non-sorted
  218.     number base for a lot faster tracking in the user records.
  219.     You'll notice that a number will appear to the left of each
  220.     of your TIC areas.
  221.  
  222.     The TIC setup in the FTS user records is working.
  223.  
  224.     Another field in the FTS User record allows sysops to force
  225.     public-only scanning in specified areas.  This allows FTS
  226.     echoing of, for example, conference 0, without echoing the
  227.     private messages.
  228.  
  229.  
  230.   USER IMPORT
  231.  
  232.     The Renegade import should now be working.
  233.  
  234.     The Remote Access 2.xx import is now operational, although untested.
  235.  
  236.  
  237.   FILE AREA
  238.  
  239.     The complete rebuild will now reposition the TIC, non-TIC and
  240.     inbound file subjects to the newly built tree.
  241.  
  242.     The highlight bars will now be aligned properly after flagging
  243.     a file in the file tree.
  244.  
  245.  
  246.   DOORS
  247.  
  248.     The "simulteneous nodes" field in the door setup will now limit
  249.     the number of nodes that can access the door (now functioning
  250.     as it's supposed to).
  251.  
  252.  
  253.   NEW SEQ VARIABLE
  254.  
  255.     LASTKEY :string[20]
  256.  
  257.       This variable reports the last key used in a menu process, whether
  258.       from a MENU() statement, a menu tree branching, the menu at the
  259.       bottom of a message, or the CHOOSEPROTO menu.  The key held in
  260.       LASTKEY may be up to 20 characters.
  261.  
  262.  
  263. Internal compile number 28794:
  264.  
  265.   REP IMPORT
  266.  
  267.     Some systems are further leaving the specs and producing .REP
  268.     packets with lower case ID's in the header... KBBS will now
  269.     read those.
  270.  
  271.  
  272. Internal compile number 28793:
  273.  
  274.   GENERAL
  275.  
  276.     Some additional quirks in the interface have been fixed.
  277.  
  278.     The special debugging code has been removed from this version,
  279.     so things ought to run quite a bit faster.
  280.  
  281.     The SHOWFILE command will now display any text file specified
  282.     in the parameter.
  283.  
  284.  
  285.   FTS SUPPORT
  286.  
  287.     One last problem has been fixed with the ALT-I import of NA/RA
  288.     files in the echomail area name setup.... it SHOULD WORK NOW.
  289.  
  290.     The TIC area name has now been limited to 8 characters to
  291.     comply with the FTS official limitations-- so that other
  292.     TIC processors don't choke on KBBS .TIC files.
  293.  
  294.  
  295.   SEQ VARIABLES
  296.  
  297.     ABORTDOOR :boolean
  298.  
  299.       This is set to FALSE when the "Optional SEQ Before" is executed
  300.       before a door is executed.  If the SEQ sets this variable to
  301.       TRUE, the door and "Optional SEQ After" will not be executed.
  302.       This is useful for sysops that wish to imposed execution
  303.       requirements prior to running the door.
  304.  
  305.  
  306. 2.20Z.20N Test release (internal compile number 28788)
  307. ---------
  308.  
  309.   LOOK/FEEL
  310.  
  311.     More changes have been made to make the interface more consistent
  312.     around the sysop utilties generally.
  313.  
  314.  
  315.   MULTITASKING/LOW LEVEL
  316.  
  317.     Several additions and fixes to memory, thread and stack handling
  318.     have been made in this addition to make KBBS less memory hungry
  319.     and more reliable.  This represents the majority of the work
  320.     for this release, although the actual modifications will not be
  321.     listed here.
  322.  
  323.     The minimum number of concurrent threads will now be 7 instead
  324.     of 4.  We have found that less than 7 creates too much of a
  325.     demand on the stack and crashes occur, and 7 will still run
  326.     pretty efficiently on systems with less than 500K of conventional
  327.     memory as long as there is EMS or XMS memory available.
  328.  
  329.     The background events are now configurable individually in
  330.     the Setup, Nodes, Multitasker setup screen.
  331.  
  332.  
  333.   CONFERENCE ISSUES
  334.  
  335.     The ALT-I in the QWK Network setup will now import from anywhere.
  336.  
  337.  
  338.   DOORS
  339.  
  340.     The lockup when adding new doors has been fixed.
  341.  
  342.  
  343.   EVENTS
  344.  
  345.     The event schedules will no longer fill up with empty schedule
  346.     times when you ALT-I to initialize them.
  347.  
  348.     Other problems related to event execution have been fixed.
  349.  
  350.  
  351.   FTS SUPPORT
  352.  
  353.     Due to the problems in getting this release out, TIC Hub support
  354.     will follow in the next release. (Booo hisss)
  355.  
  356.     The ALT-I area import works now.
  357.  
  358.  
  359.   MENUS
  360.  
  361.     In the menu tree, Dynamic menu settings, the "Use color settings
  362.     below" toggle was reversed... now fixed.  If you're having some
  363.     strange problems with colors, look for this toggle and make sure
  364.     your colors are what you want them to be.
  365.  
  366.     Some problems in the sysop utilities menus have been fixed.
  367.  
  368.  
  369.   RING DETECTION
  370.  
  371.     More adjustments have been made for ring detection for RingMaster
  372.     and distinctive ring systems.
  373.  
  374.  
  375.   SEQ ISSUES
  376.  
  377.     The REFRESHFILE() command now works properly.
  378.  
  379.  
  380.   NEW SEQ COMMANDS
  381.  
  382.     WRITEFILELIST command                             Files
  383.     =======================================================
  384.  
  385.         Purpose   Creates a file list
  386.  
  387.          Syntax   WRITENEWFILELIST( <fileindex>,<handle>,<level>,<control>);
  388.  
  389.         Remarks   <fileindex> is of type filename, <handle> is a
  390.                   variable of type integer, <level> is of type
  391.                   byte, <control> is of type integer
  392.  
  393.                   Outputs a files list of the file index
  394.                   <fileindex>, writing it to a text file, opened by
  395.                   one of the OPENTEXT... commands using <handle>.
  396.                   The files scanned are based on <level>-- only
  397.                   subjects and files within those subjects that may
  398.                   be accessed by the specified security level will
  399.                   be listed.
  400.  
  401.                   <control> is bitmapped (32 bit) control variable
  402.                   that will be used to turn on and off various
  403.                   list features in a future version.  In the
  404.                   current edition, the list will be structured
  405.                   as follows:
  406.  
  407.                     Files and subjects listed in the main (root) subject
  408.                     ┌─────────────────────────────────────────────┐
  409.                     │ Subject header including description        │
  410.                     └─────────────────────────────────────────────┘
  411.                     Files and [subjects] listed in the above subject
  412.  
  413.                   and so forth.  Note that NO header is placed at the
  414.                   beginning-- this is left up to the programmer.
  415.  
  416.                   No status is displayed while the file list is
  417.                   being created.
  418.  
  419.    Restrictions   This command is ignored if the file <handle> is
  420.                   not open and ready for writing.
  421.  
  422.        See Also   SCANNEWFILEDATE, SCANNEWFILES, WRITENEWFILELIST
  423.  
  424.  
  425.  
  426. 2.20Z.20M Test release (internal compile number 28556)
  427. ---------
  428.  
  429.   MEMORY/LOW LEVEL
  430.  
  431.     ... another test to see if lockup and slowdown problems that
  432.     existed on Hal Holland's machine are solved.  They appear
  433.     to be solved here.
  434.  
  435.     STACK checking has been enabled in this version, which slows
  436.     things down about 5% but will allow us to find out where
  437.     the stack crashing is occurring.
  438.  
  439.  
  440.   INTERFACE ISSUES
  441.  
  442.     Major changes everywhere toward making the interface more
  443.     consistent.  Now you have to press F10 everywhere to save
  444.     the screen, but you can also abort everything in case
  445.     you make a mistake.
  446.  
  447.     In the "low cost dialing hours" and "pager schedule" the
  448.     Every Day option now displays correctly in the picklist.
  449.     It was displaying as Saturday.
  450.  
  451.  
  452.   INTERNODE
  453.  
  454.     The indernode command SHUTDOWN _REALLY_ leaves the phone
  455.     off the hook now...  (I know-- this has been listed as
  456.     fixed several times now, but I think we got it this time)
  457.  
  458.  
  459.   COMMUNICATIONS
  460.  
  461.     We have switched the INIT and HANGUP code in the recycle
  462.     process for a more intelligent way to manage the modem
  463.     on recycle.  (Gee... why didn't we think of this before...)
  464.  
  465.  
  466.   FTS ISSUES
  467.  
  468.     The TIC importer now properly puts files OFFLINE as defined
  469.     in the setups.
  470.  
  471.     The "Picture" bit will now be set properly in inbound TIC
  472.     files that aren't processed by the upload processor.
  473.  
  474.  
  475.   COMMAND LINE
  476.  
  477.     The command line parameter, COMPILENODELISTS, will now work,
  478.     in addition to COMPILENODELIST.
  479.  
  480.  
  481.  
  482. 2.20Z.20K Bug fix release (internal compile number 28438)
  483. ---------
  484.  
  485.   PLEASE NOTE
  486.  
  487.     We're soon going to go back to the daily UPGRADE versions
  488.     for registered sysops, so we're going to start using our
  489.     internal compile number.  It will now appear at the top of
  490.     your ERROR.LOG, and will help us to know exactly which
  491.     version you are running.
  492.  
  493.  
  494.   FIXES
  495.  
  496.     When running KBBSUTIL directly, the ALT-F1 and F1 (help) keys
  497.     work properly.
  498.  
  499.     Event problems have been fixed.  (Funny thing-- the problem
  500.     would only manifest itself during the first 7 days of the
  501.     month...)
  502.  
  503.     The SHUTDOWN NODE internode command will now leave the phone
  504.     off hook if using the offhook option.
  505.  
  506.     FTS fixes:  echomail packets attached to netmail messages will
  507.     now be tossed properly, and non-echomail packets will be
  508.     attached properly and not processed into the misc file subject.
  509.     The TIC processor should now save and process incoming TIC's
  510.     safely regardless of the existance of paths defined in the
  511.     file subjects.
  512.  
  513.     The problem of "Minimum Age" settings to 115 years in file
  514.     subjects has been solved...
  515.  
  516.  
  517.  
  518. 2.20Z.20j test release
  519. ---------
  520.  
  521.   WHAT IS NOT IN THIS RELEASE
  522.  
  523.     After struggling this month with bugs, illness, family problems
  524.     and whatever else fate could dish out, we're just happy to
  525.     get this release out.  We'll be doubling our efforts during
  526.     the month of February to get through the rest of the enormous
  527.     TODO list.  The following were NOT included in this release,
  528.     although they are coded and ready to be added this coming week:
  529.  
  530.       - support for Hubs and TIC files (right now it just processes
  531.         them, but you can't hatch them...  this is on the top of the
  532.         list for Monday)
  533.  
  534.       - KBBSMENU problem fixes
  535.  
  536.       - RIP fixes
  537.  
  538.       - some SEQ addition requests
  539.  
  540.  
  541.   LANGUAGE ISSUES
  542.  
  543.     We ended up doing a last minute reconstruction of the way we
  544.     maintain setup files-- a major rewrite that forced us offline
  545.     for about 2 days due to being half-upgraded.  We're now ready
  546.     to go through and add language/prompt editing support, which
  547.     should be part of the next release.
  548.  
  549.  
  550.   NEW KERNEL CODING
  551.  
  552.     After bashing our heads over a file corruption problem for the
  553.     last week, we found the problem to be in the multitasking
  554.     kernel and had to do a major re-think and re-write of a
  555.     significant portion of that code.  The benefits of this are
  556.     faster execution, faster virtual memory access, and one
  557.     additional step towards a 32 bit OS/2 and Win9x version.
  558.     This version should also run on systems with restricted
  559.     conventional memory.
  560.  
  561.     With all of the hammering on this version over the last month,
  562.     we believe this version to be the most stable KBBS we've
  563.     released to date.  Field testing will be the truthteller on
  564.     this one.
  565.  
  566.  
  567.   TICK FILE SUPPORT
  568.  
  569.     BE SURE to go through all of the menus in the SETUP section of
  570.     the new KBBS Fido menu... you'll see a few additional options
  571.     that weren't there before.  New documentation to support the
  572.     changes will be out shortly.
  573.  
  574.     We have written and rewritten TICK support in KBBS so many times..
  575.     we have now come up with what we believe is the way to do this
  576.     effortlessly (on the part of the sysop) in KBBS.
  577.  
  578.     * SETTING UP TIC SUPPORT in the KBBS Fidonet menu
  579.  
  580.       1. Areas, TIC AREAS
  581.  
  582.         Here you must define all of the TIC area names and the
  583.         file index and subject you in which files marked with
  584.         the specified TIC area are to be placed.  You may also
  585.         define the fields used in the file index:  Minimum Age,
  586.         Hidden if no access, Security Levels, online/offline
  587.         and whether or not to use the upload processor on
  588.         incoming files.
  589.  
  590.         Currently, TIC files received without a password or
  591.         with an incorrect password are still placed in their
  592.         index/subject and placed offline.
  593.  
  594.       2. Areas, UNDEFINED TICS
  595.          (also found in the Fidonet Setup menu)
  596.  
  597.         This is similar to echomail's TRASHCAN--files with
  598.         unrecognized TIC area names are processed according
  599.         to these settings.
  600.  
  601.         It is recommended that the sysop
  602.         deny access to these files until they can be
  603.         reviewed for content before placing them online for
  604.         general download.
  605.  
  606.       3. Areas, INBOUND FILES
  607.          (also found in the Fidonet Setup menu)
  608.  
  609.         This is for receiving non-TIC and non-mail files.
  610.         Previously these files were placed in a NEWFILES
  611.         directory, but are now placed in a selected file
  612.         index and subject.  This setup is identical to the
  613.         Areas, UNDEFINED TICS above.
  614.  
  615.     NOTE: receive only support in this test version
  616.  
  617.       We have the code written for HUB .TIC support (hatching,
  618.       etc.) but were unable to resolve a few bugs prior to this
  619.       release.  Documentation for the new Fidonet menu and a
  620.       complete Send/Receive TIC support will be released
  621.       shortly.
  622.  
  623.  
  624.   SYSOP UTILITIES
  625.  
  626.     More restructuring has been done to the sysop utilities menu (this
  627.     will be an ongoing process until we arrive to something that
  628.     everyone likes).
  629.  
  630.     The DOS SHELL, LOCAL LOGIN, PROGRAM and EVENTS are now all
  631.     activated by the ALT-F1 hotkey from ANYWHERE in the sysop menu!
  632.     Hence, they have all been removed from the main menu.
  633.  
  634.  
  635.   KBBSMENU AND HIGHLIGHT BARS
  636.  
  637.     A bug that caused KBBSMENU to ignore a field with an @end@ at the
  638.     very end of a line has been fixed.
  639.  
  640.     A bug that failed to read the grid rows/columns properly has been
  641.     fixed.
  642.  
  643.     The highlight bar support has now been properly fixed to support
  644.     8 columns both dynamically and ANSI sysop defined.
  645.  
  646.  
  647.   USER AND SECURITY ISSUES
  648.  
  649.     Remember the old Re-serialize utility that would make everyone
  650.     get their own mail on the next mailrun?  That utility has been
  651.     upgraded to NOT force everyone to get their own mail by quickly
  652.     locating any dupe serial numbers in the user database and
  653.     assigning new numbers to just those only. It is now named "SERIAL
  654.     DUPE CHECK" and is found in the Users menu.  This utility is
  655.     automatically executed when you upgrade to this version.
  656.  
  657.     The error that occurred on some systems upon entry of the security
  658.     level setup has been fixed.
  659.  
  660.     Security level changing based on ratios has been FIXED!  (Really
  661.     has this time, folks)  You now have control over whether or not
  662.     to force ratios, change levels based on ratios, or turn them off
  663.     completely.  Specific data about the security level change will
  664.     now be logged so you can tell why KBBS changed the user's level.
  665.  
  666.     COMPLETE REWRITE:  Expiration date based security level changing
  667.     has been rewritten along with the ratio changing code, and it's
  668.     now completely functional and configurable.  See the new
  669.     H2LEVEL2.ZIP documentation clip file for tech notes on how
  670.     the security levels work.
  671.  
  672.  
  673.   EVENTS, TIME AND SCHEDULES
  674.  
  675.     In all of the "Click" type schedules (pager times, etc) a new
  676.     option "Every Day" has been added to the "Day" field, and the
  677.     time is now handled as start-stop rather than start-duration.
  678.  
  679.     Events have been restructured to have multiple schedules per
  680.     event setup.  A "Crash" zone may be defined for each schedule
  681.     so that if a system is down for a period of time without
  682.     running events, you have control over what events may still
  683.     execute at that later time.
  684.  
  685.     Events will no longer cause lockups if the system date changes,
  686.     or lockups at midnight.
  687.  
  688.     New event types:
  689.  
  690.       * execution of SEQ programs
  691.  
  692.       * rebuilding of Ksearch file index
  693.  
  694.  
  695.   LOW LEVEL ISSUES
  696.  
  697.     To handle a file-open bug found in both Windows'95 and some
  698.     peer-to-peer networking software, we added special handling
  699.     for read-only files in these environments.
  700.  
  701.     The Console Screen Editor has been fixed so it doesn't lockup
  702.     or do thousands of print-screens, etc.  (The stack was
  703.     being relocated to the overlay buffer memory.)
  704.  
  705.     If a compiled .SEQ is corrupt, KBBS will now tell you which
  706.     one, rather than just the location (i.e. SEQ Command Fault)
  707.  
  708.     KBBS will now detect and handle personal mail waiting flag
  709.     problems (i.e. corrupted flags, duplicate conferences in
  710.     notifications, etc).
  711.  
  712.  
  713.   FILE AREA
  714.  
  715.     A new key, ALT-Q, allows Quick changing of various fields in the
  716.     file records.  You can now tag a bunch of files and change their
  717.     security levels, minimum age requirements, etc.
  718.  
  719.     The ALT-T key while highlighted on the very last (blank) entry
  720.     in the current subject will no longer delete the last item in
  721.     the subject and put a blank file entry at the beginning.
  722.  
  723.     The underscore, hyphen and apostrophe have been added to the
  724.     key sensitivity of Ksearch file indexes.
  725.  
  726.     An age restriction field has been added to both file subjects
  727.     and files themselves.  "Hidden if no access" has been added
  728.     to files.  Because these are toggles that are most conveniently
  729.     set when the file is added to the system, the upload setup, TIC
  730.     area setup and file import screens all have these fields as well.
  731.     NOTE:  this part still has some work left to go.  For example,
  732.     in a file search, hidden/noaccess files aren't displayed, but
  733.     they are counted in the total files found.
  734.  
  735.     Because of the new "Hidden if no access" toggle, files that
  736.     users cannot access will now show up in the new files search
  737.     if they don't have access to it and the toggle is set to
  738.     DISABLE.
  739.  
  740.     Upload subject now has two sets of security fields:  who may
  741.     upload to the subject itself, and what security is assigned
  742.     to files uploaded to that subject.
  743.  
  744.     You may enable/disable the upload processor on an upload subject
  745.     level.  This also applies to TIC file support.
  746.  
  747.  
  748.   FIDONET SUPPORT
  749.  
  750.     A bug that caused all nodes to execute a single FTS queue event
  751.     has been fixed.
  752.  
  753.     A command line parameter has been added to compile the
  754.     FTS nodelists:  KBBS COMPILENODELISTS    Type KBBS /? for
  755.     help on all command line parameters.
  756.  
  757.     If a corrupt packet is handed to the message tosser, it won't
  758.     lockup anymore.
  759.  
  760.  
  761.   COLORS
  762.  
  763.     A toggle "Use color settings below" has been added to the menu
  764.     tree "Menu" type, so the defaults may be used if desired.
  765.  
  766.  
  767.   COMMUNICATIONS
  768.  
  769.     The hangup after recycle is a little more solid in this release.
  770.  
  771.  
  772.   SEQ ISSUES
  773.  
  774.     The PACKETWAITING function is properly returning a BYTE result
  775.     of 0 if no packet is waiting to be received, and the number of
  776.     the sending node if a packet is waiting to be received.  In all
  777.     of our tests this is now working as it's supposed to be.
  778.     (Note, the command originally returned a boolean result)
  779.  
  780.  
  781.   SEQ COMMAND AND FUNCTION ADDITIONS
  782.  
  783.     GETMESSLINE( <linenum> ):string  (function)
  784.  
  785.       <linenum> is of type integer.  This command retrieves
  786.       individual lines from the current message in the message
  787.       buffer.  The first line is line 1.  If <linenum> is
  788.       greater than the last line in the message, the global
  789.       status variable RESULT will be set to 1, otherwise
  790.       RESULT will be set to 0.  The carriage return at the
  791.       end of each line (soft or hard) is not included in the
  792.       result.
  793.  
  794.  
  795.     DELETETEXT( <startline>, <endline> );
  796.  
  797.       Both parameters are of type integer.  This command deletes
  798.       the lines starting at line number <startline> up to and
  799.       including line number <endline>.  If <startline> is greater
  800.       than <endline> then this command is ignored.  The first
  801.       line in a message is considered line 1.  If <endline> is
  802.       beyond the end of the message, the lines from <startline>
  803.       to the end of the message will be deleted.
  804.  
  805.       (see INSERTTEXT for a command to insert text into a message)
  806.  
  807.  
  808.     REFRESHFILE( <index>, <filename> );
  809.  
  810.       <index> and <filename> are of any string type.  This command
  811.       performs the same function as ALT-R in the file utilities--
  812.       it reads the current information about the file <filename>
  813.       in the file index <index>, updating the file size and date
  814.       in the file index.  It also updates the description using
  815.       the FILE_ID.DIZ or DESC.SDI within the file if it is an
  816.       archive and such a file is contained within.  Also, if any
  817.       information changed about the file, the posted date is
  818.       changed to the current date and time, and the the new-file
  819.       indexes are updated.  A value of 1 is returned in the
  820.       global status variable RESULT if the specified file is
  821.       not found in the specified index, otherwise RESULT is 0.
  822.  
  823.  
  824.  
  825. 2.20Z.20i test release
  826. ---------
  827.  
  828. NOTE FOR TESTERS:  The way color configuration worked in earlier versions
  829.                    of 20H has been changed.  A new DEFAULT COLOR SETTINGS
  830.                    has been added in Setup, Global that define the colors
  831.                    for the whole system, and a toggle in each menu
  832.                    selection defines whether to use the default or
  833.                    additional definitions in that selection.  If you
  834.                    were running an earlier version of 20H, this change
  835.                    will appear to have reverted your color changes back
  836.                    to default.  Simple go into the menu tree and toggle
  837.                    on the "Use below colors" toggle.
  838.  
  839.  
  840.   IMPORTANT LOW LEVEL STUFF
  841.  
  842.     The program launcher has been enhanced to give you more control
  843.     over the amount of memory your programs require.  The defaults
  844.     everywhere are ALL memory, forcing KBBS to swap out and make
  845.     available all conventional memory.  You can now reduce this
  846.     requirement for some programs that don't need it, which reduces
  847.     the swapper resource requirements and shortens the time it takes
  848.     to execute a program.  An example of this is PKZIP and PKUNZIP
  849.     which only use less than 200K if you have enough EMS/XMS memory,
  850.     making a swap/allocation of the full 610K a waste of time.
  851.  
  852.     A new executable has been added, KBBSLOOP.EXE, that handles the
  853.     dispatching from one module to the next, rather than the big
  854.     modules having to swap themselves out to pass back and forth.
  855.     This should result in less swapping time and sizes and give
  856.     KBBS more memory to work with.  This also elininated the benefit
  857.     of having separate KBBSFIDO and KBBSFILE modules, so those are
  858.     not integrated back into the old KBBSEXEC and KBBSUTIL sets.
  859.  
  860.     Recycle time should now be reduced because we have moved
  861.     some of the recycle code into the KBBSLOOP module.
  862.     ... update on this... we found we were creating a huge swap
  863.     memory overhead problem by putting ALL of the startup code
  864.     into KBBSLOOP.  We're now compromising and although the recycle
  865.     will be a little slower, the overall speed of the system should
  866.     increase.
  867.  
  868.  
  869.   MESSAGE EDITOR/VIEWER
  870.  
  871.     The color scheme for the message reader and editors is now definable
  872.     in the Default Color Setup in Setup, Global.  There is also a
  873.     MESSPALETTE command, see below.
  874.  
  875.     Fixes to color inconsistency bugs in 20H are in this version.
  876.  
  877.     @ control codes are no longer converted while in the editor (it
  878.     was impossible to edit before).
  879.  
  880.  
  881.   EDIT SCREENS AND FIELDS
  882.  
  883.     The color scheme for the edit screens and fields is now defined
  884.     in the Default Color Setup in Setup, Global.  There is also an
  885.     EDITPALETTE command, see below.
  886.  
  887.  
  888.   SUBJECT TREES
  889.  
  890.     The conference letter/number issue has been fixed.
  891.  
  892.     Starting with the files section and then the rest of the subject
  893.     tree lists, we have completely revamped the color displaying
  894.     process to allow sysops to choose the color scheme completely.
  895.     The color schemes are configured in the menu tree editor and
  896.     with the LISTPALETTE command.
  897.  
  898.     Some bugs that caused the file tree to not fill the entire screen
  899.     with subjects have been fixed.
  900.  
  901.     AT control codes will now work in tree subject (all), conference and
  902.     door descriptions.
  903.  
  904.  
  905.   FIDO SUPPORT
  906.  
  907.     The ALT-I (import RA/NA file) will now properly add the host address
  908.     and tag chosen for adding conference names.
  909.  
  910.     The long conference name/description in the RA/NA is now used for
  911.     the long conference name in conferences created by the ALT-I
  912.     import function.
  913.  
  914.     A new indexing method is being used for the nodelist compiler, so
  915.     you should recompile your nodelists when upgrading to this version.
  916.  
  917.     We have extended the detection wait time when receiving a call
  918.     in order to respond to slower connecting modems.  We WERE going
  919.     to make the time a field in the modem setup but scrapped that
  920.     for now.
  921.  
  922.     The toggle in the FTS user record that "combines packets" was
  923.     disabled for the wrong state of the .PKT toggle.  Fixed.
  924.  
  925.     The Enter Netmail option in the KBBSFido menu now saves the
  926.     message as a normal message in the netmail conference which
  927.     adds the "Normal" (routed) mail option and eliminates the
  928.     truncated PKT problem Leonard is having (we HOPE).  What seems
  929.     like a simple fix ended up being a major rewrite to the KBBSFido
  930.     structure, although not visibly different from before.
  931.  
  932.     The outbound dialer should now detect a BUSY more quickly.
  933.  
  934.  
  935.   MENUS
  936.  
  937.     ANSI Highlight bar menus have been expanded to handle 8 columns of
  938.     menu items instead of 4.  The limit of rows is still 18.
  939.  
  940.     A new utility, KBBSMENU, can now be used to define the bars in an
  941.     ANSI menu display file.  See KBBSMENU.DOC for more information.
  942.  
  943.     Lots of minor fixes to the menus not listed here.
  944.  
  945.     A new field has been added to the menu tree to keep KBBS from
  946.     clearing the screen before displaying the dynamic menu, allowing
  947.     the option of special effects.  This corresponds with the new
  948.     NOCLS variable for use with the MENU() command.
  949.  
  950.  
  951.   QWK IMPORT UTILITY
  952.  
  953.     The QWK import utility for setting up QWK/REP Networks is now
  954.     accessed by pressing ALT-I while in the mapping setup.
  955.  
  956.     All bugs have been fixed in that area also, and major
  957.     improvements to the speed of its operation now make it useful.
  958.  
  959.     Host conference name changes are now shown flashing in the picklist
  960.     to make changing your mappings and conference names a breeze.
  961.  
  962.  
  963.   FIXES AND ADDITIONS
  964.  
  965.     Another minor problem would cause a lost byte occasionally in
  966.     the display file output routines... this has been fixed (this
  967.     related to J.Scurran's RELNEWS.BBS sample with the color that
  968.     wouldn't change to #8 properly).
  969.  
  970.     Time should now count down properly while users are in doors.
  971.  
  972.     KSearch indexes now contain the names of the files.
  973.  
  974.     Another minor rewrite to the outbound dialer should solve any
  975.     remaining connect problems with some modems.
  976.  
  977.     Time shelled to an external program is no longer considered
  978.     "idle" time by KBBS so that the user is kicked off immediate
  979.     upon return.
  980.  
  981.     SEARCHBACKWARD and SEARCHFORWARD are now working properly and
  982.     will search for text in messages.  The SEQ set released with Z.21
  983.     will contain a MESSHEAD.SEQ that implements these commands.
  984.  
  985.     Execution of LOGOFF.SEQ will now leave the LASTCALL variable
  986.     alone instead of setting it to a random or 0 value.
  987.  
  988.     The toggle in the door setup for "Ignore Errorlevel" was reversed
  989.     and is now working properly.  (i.e. Yes was actually No and vice
  990.     versa)
  991.  
  992.     Highlight bar selections using the HOME and END keys wouldn't
  993.     really be selected, now working right.
  994.  
  995.     The editor in the SEQ programming section will no longer stop on
  996.     the error in column 65,000 or something like that.
  997.  
  998.     The Ksearch logic has been fixed so that when the first component
  999.     of an AND results in no files found, the result is properly ANDed
  1000.     with the remaining components to result in 0 files (previously it
  1001.     would ignore it).
  1002.  
  1003.  
  1004.   SEQ FIXES AND CHANGES
  1005.  
  1006.     The EDITMESSAGE command will NOW edit the message in the current
  1007.     message buffer.  A new EDITMSG.SEQ has been included with the
  1008.     full release and upgrade that reflect this addition.
  1009.  
  1010.     The READKEY and KEYPRESSED function now return a value in RESULT
  1011.     that specifies the source of the keypress:
  1012.  
  1013.       0: none pressed (for Keypressed)
  1014.       1: from Caller (across the modem)
  1015.       2: from Console (the sysop keyboard)
  1016.  
  1017.     If a key is simulteneously pressed on the console and remote,
  1018.     priority is given to the keypress on the sysop console.
  1019.  
  1020.     Integer operations that would normally overflow the math
  1021.     co-processor's stack and result in an error 209 will now function
  1022.     properly (referring to Joshua Scurran's report of X:=BYTESLEFT*1024
  1023.     when BYTESLEFT is a very high number).
  1024.  
  1025.  
  1026.   NEW SEQ VARIABLES
  1027.  
  1028.     NOCLS :boolean
  1029.  
  1030.       If FALSE, KBBS will send a Clear Screen before displaying an ANSI
  1031.       mode dynamic menu.  If TRUE, KBBS will display the menu over the
  1032.       top of whatever is currently on the screen.  This corresponds to
  1033.       the new field in the Menu Tree.
  1034.  
  1035.     USERLOGINSOUND :integer
  1036.  
  1037.       Returns the login sound defined in the user record
  1038.  
  1039.     LOGINSOUND: integer
  1040.  
  1041.       Returns the login sound defined for the current security level
  1042.  
  1043.     PAGEDURATION: integer
  1044.  
  1045.       Defines the pager duration for the remainder of the current
  1046.       session.  Always set to 30 on startup of KBBS or when a user
  1047.       record is loaded (using one of the LOGIN types or LOADUSER/
  1048.       NEXTUSER).  The range is 0 to 9999 in seconds.  This variable
  1049.       may not be used in edit fields since no direct pointer to
  1050.       this variable exists.
  1051.  
  1052.  
  1053.  
  1054.   NEW SEQ COMMANDS/FUNCTIONS
  1055.  
  1056.     SETNODESTATUS( <status>, <chatavail> );
  1057.  
  1058.       <status> is a string, <chatavail> is of type boolean
  1059.  
  1060.       This sets the current node status string to <Status>.  Set
  1061.       <chatavail> to TRUE if the user is able to chat, or FALSE
  1062.       during operations that would be interrupted by a chat request.
  1063.  
  1064.  
  1065.     MENUPALETTE...
  1066.  
  1067.       (See the syntax of this command below)
  1068.  
  1069.       All 0-7 values will now accept 0 to 15.  Values 8-15 denote
  1070.       blinking attributes of the related foreground.
  1071.  
  1072.  
  1073.     EDITPALETTE( <c1>, <c2>, ... <c14>, <c15>, <c16> );
  1074.  
  1075.       All 16 parameters are of type byte.
  1076.  
  1077.       NOTE:  all 16 parameters are required!
  1078.  
  1079.       This command changes the color scheme used by all subsequent
  1080.       edit screens and fields.  Unlike the MENUPALETTE command,
  1081.       all parameters in EDITPALETTE are in pairs of foreground
  1082.       and background.  If a background parameter is above 7, the
  1083.       foreground will be in blinking mode.  Parameter 15 defines
  1084.       the character used in the background filler.  Parameter
  1085.       16 is ignored but required.
  1086.  
  1087.           Foregr/
  1088.            Backgr
  1089.  
  1090.             1/2=  Background filler
  1091.             3/4=  Title text
  1092.             5/6=  Normal text
  1093.             7/8=  Other text
  1094.            9/10=  Help text
  1095.           11/12=  Inactive field text
  1096.           13/14=  Active field text
  1097.              15=  ASCII number for background filler character
  1098.              16=  reserved
  1099.  
  1100.  
  1101.     LISTPALETTE( <c1>, <c2>, ... <c32> );
  1102.  
  1103.       All 32 parameters are of type byte.
  1104.  
  1105.       NOTE:  all 32 parameters are required!
  1106.  
  1107.       This command changes the color scheme used by all subsequent
  1108.       subject trees.  This includes the Files, Conferences, Bulletins,
  1109.       Doors, ConferenceList (brief names) and other future areas.
  1110.       Unlike the MENUPALETTE command, all parameters in LISTPALETTE
  1111.       are in pairs of foreground and background.  If a background
  1112.       parameter is above 7, the foreground will be in blinking mode.
  1113.  
  1114.           Foregr/
  1115.            Backgr FILE SECTION        BULLETINS  CONF TREE  DOORS
  1116.  
  1117.             1/2=  Title/ancestors     (same)     (same)     (same)
  1118.             3/4=  Current subject     (same)     (same)     (same)
  1119.             5/6=  Defaults/Separator  (same)     (same)     (same)
  1120.             7/8=  Subject Selector    (same)     (same)     (same)
  1121.            9/10=  Subject Text        (same)     (same)     (same)
  1122.           11/12=  Subject Description (same)     (same)     (same)
  1123.           13/14=  File Selector       Bull Slctr Conf Slctr Door Slctr
  1124.           15/16=  File name           Bull Name  Conf Name  Door Name
  1125.           17/18=  File Size           n/a        n/a        n/a
  1126.           19/20=  File Date           n/a        n/a        n/a
  1127.           21/22=  File Desc, line 1   n/a        Conf desc  Door desc
  1128.           23/24=  File Desc, others   n/a        n/a        n/a
  1129.           25/26=  Offline/free info   n/a        Co-sysop   Mode info
  1130.           27/28=  Subject highlight   (same)     (same)     (same)
  1131.           29/30=  File highlight      Bull Hilt  Conf hilt  Door hilt
  1132.           31/32=  File other info     n/a        n/a        n/a
  1133.  
  1134.  
  1135.     MESSPALETTE( <c1>, <c2>, ... <c32> );
  1136.  
  1137.       All 32 parameters are of type byte.
  1138.  
  1139.       NOTE:  all 32 parameters are required!
  1140.  
  1141.       This command changes the color scheme used by all subsequent
  1142.       message reading and editing.
  1143.  
  1144.           Foregr/
  1145.            Backgr
  1146.  
  1147.             1/2=  Date label
  1148.             3/4=  Date
  1149.             5/6=  Time
  1150.             7/8=  Pvt/Ech/Rcd (message flags)
  1151.            9/10=  From Label
  1152.           11/12=  From name
  1153.           13/14=  To label
  1154.           15/16=  To name
  1155.           17/18=  Subject Label
  1156.           19/20=  Subject text
  1157.           21/22=  Conf/Reply labels
  1158.           23/24=  Conference name
  1159.           25/26=  Conference numbers
  1160.           27/28=  Separator bar/default colors
  1161.           29/30=  Normal text
  1162.           31/32=  Quoted text
  1163.  
  1164.  
  1165. 2.00Z.20G Test release
  1166. ---------
  1167.  
  1168.   NEW ZMODEM
  1169.  
  1170.     We had completely rebuilt the Zmodem protocol (again) and this one
  1171.     does quite a lot better than any previous version:
  1172.  
  1173.       - It keeps trying until it succeeds, no matter how bad line
  1174.         conditions get, unlike the previous version that aborted easily
  1175.  
  1176.       - We're attempting to emulate Moby, making transfers between two
  1177.         KBBS systems pretty quick.
  1178.  
  1179.       - True multi-thread operation separate disk reading from
  1180.         communications so that less CPU overhead is being used during
  1181.         transfers.
  1182.  
  1183.       - This Zmodem has improved the reliability of FTS support QUITE a bit
  1184.  
  1185.       - Procomm batch information is sent in the Zmodem file headers
  1186.  
  1187.  
  1188.   TWITT FILTERING
  1189.  
  1190.     The NET import QWK twit filter is still intact, and a new global
  1191.     import twit filter had been added to Trees, Conferences that filters
  1192.     the following message import processes:
  1193.  
  1194.       1. REP Uploads from users
  1195.       2. Inbound fidonet echomail packets
  1196.       3. Net QWK imports (in addition to the current Net import filter)
  1197.  
  1198.     Unlike the NET import QWK import twit filter that allows sysops to
  1199.     lockout subjects, the global twit filter only locks out messages
  1200.     FROM the users listed in the filter.
  1201.  
  1202.     Note:  although KBBS will handle several hundred twits in this list
  1203.     with no problem, a large number in this list will slow down import
  1204.     processes because of the additional task of comparing the FROM name
  1205.     in imported messages with entries in the list.
  1206.  
  1207.  
  1208.   CHAT LOGGING
  1209.  
  1210.     While chatting, CTRL-HOME will toggle Chat Logging on and off,
  1211.     defaulting to OFF when entering chat.  A CHAT.LOG will be
  1212.     created in the KBBS directory and chat text will be appended.
  1213.  
  1214.     Also while in a chat, ALT-F1 will now shell to DOS locally.
  1215.  
  1216.  
  1217.   CONTROL CODES
  1218.  
  1219.     We've completely rewritten the control (@, Pipe and Heart) code
  1220.     processor to replace the previous buggy one.  This one has no
  1221.     limit to line lengths (the number of codes you can squeeze
  1222.     on a single line) and is much faster.
  1223.  
  1224.  
  1225.   PROGRAM EDITOR/COMPILER
  1226.  
  1227.     The menu hotkeys (such as F6, ALT-0, etc) will leave the contents
  1228.     of the current line alone (was erased/reverted before).
  1229.  
  1230.     The "Save As" option now presents the current filename for alteration
  1231.     rather than garbage characters.
  1232.  
  1233.     A bug reported by Joshua Scurran that caused the compiler to
  1234.     overlook a syntax error in a program has now been fixed.
  1235.  
  1236.  
  1237.   DOORS
  1238.  
  1239.     A toggle has been added to the door setup to make KBBS ignore
  1240.     the DOS ERRORLEVEL result when returning from executing the door.
  1241.     We have found that some doors on some systems return a non-zero
  1242.     result regardless of the successful execution of the door.
  1243.  
  1244.  
  1245.   FTS
  1246.  
  1247.     The FTS.LOG logging has been shortened (a lot of debugging stuff
  1248.     removed for items that we know are working now).
  1249.  
  1250.     The WAZOO ONLY mode dialout/poll is now working.
  1251.  
  1252.     If KBBS in unable to dearchive a packet, it is now moved to the
  1253.     bad packet directory instead of deleted.
  1254.  
  1255.     The nodelist viewer has been given some additional cache memory so
  1256.     it displays a bit faster when browsing up and down in the picklist.
  1257.  
  1258.     Because of a bug in OS/2's FINDFIRST and FINDNEXT DOS interrupt
  1259.     commands, sometimes a packet would be send with no header... this
  1260.     has (hopefully) been fixed.
  1261.  
  1262.  
  1263.   NET STATUS
  1264.  
  1265.     Net status toggles are now found in the Security level setup as well
  1266.     as the user's individual records.  This allows a sysop to grant an
  1267.     entire security level Net status in a set of conferences.  The logic
  1268.     used is A user has net status in a conference IF a user has individual
  1269.     Net status OR his/her security level has net status.
  1270.  
  1271. *** WHAT IS NET STATUS?
  1272.  
  1273.       Net status grants a user "sysop" access to a conference, enabling
  1274.       that user to (1) read private mail and (2) post messages that
  1275.       aren't FROM himself/herself.  In essence, the user becomes a
  1276.       co-sysop in any conference in which he/she has net status. The
  1277.       primary purpose of net status is in QWK/REP mail networks.  You
  1278.       must grant net status to sysops that wish to use QWK/REP mail to
  1279.       echo conferences from your system, or they won't be able to read
  1280.       and save messages to/from users on their own BBS.
  1281.  
  1282.  
  1283.   FILE UTILITIES
  1284.  
  1285.     The upload processor will now properly handle non-archives.
  1286.  
  1287.     It no longer runs out of file handles while editing descriptions.
  1288.  
  1289.     Files accidentally left open that caused the complete rebuild to
  1290.     crash if you previously edited a description just before you
  1291.     perform the rebuild are now being closed properly.
  1292.  
  1293.     When you type a name while in the file tree, and that file isn't
  1294.     located in the tree, it asks you if you want to add that file...
  1295.     if you answered "yes" the actual index record added was filled
  1296.     with garbage... this has been fixed.
  1297.  
  1298.     A temporary directory with a FILE_ID.DIZ was left behind every
  1299.     time KBBS updated the .DIZ in a file (after editing the description).
  1300.  
  1301.     A bug that occurred only rarely that would corrupt subjects when
  1302.     moving mass numbers of tagged files has been fixed.
  1303.  
  1304.     When KBBS adds a FILE_ID.DIZ description file to an archive, the
  1305.     date/time is now set to match the date/time of the archive.
  1306.  
  1307.     The message saved to the sysop when an upload is performed now
  1308.     displayes the correct file size and date information and is saved
  1309.     to the proper sysop alias or real name.
  1310.  
  1311.  
  1312.   SEQ COMMANDS/COMPILER
  1313.  
  1314.     The WRITETEXT and WRITETEXTCH commands were altered in 20F to
  1315.     replace the @ codes... this caused several SEQ programs to
  1316.     misfunction, so this has been reverted back to its original
  1317.     state of not replacing the codes... sorry about that everyone.
  1318.  
  1319.     The F5 key in the SEQ fields will now edit a SEQ properly.
  1320.  
  1321.  
  1322.   OTHER FIXES/CHANGES
  1323.  
  1324.     KBBS will no longer cause a "Insert disk for drive B and press
  1325.     ENTER" problem on single drive systems (more testing will prove
  1326.     this).
  1327.  
  1328.     A bug caused a misread of an ANSI mode toggle and would strip
  1329.     ANSI from some outgoing QWK messages.... fixed.
  1330.  
  1331.     The LASTCALL variable and user data is now updated properly.
  1332.  
  1333.     The text editor window everywhere in the utilities (except the
  1334.     program editor, which is separate) now uses F10 or ALT-X to
  1335.     Save/Exit.  The ESCAPE key will give you the option of Save/Exit,
  1336.     Abort without saving, or return to edit.
  1337.  
  1338.     On some Win95 configurations, the DCDSTATUS line sometimes reports
  1339.     an OFF status when there is in fact a carrier present.  KBBS now
  1340.     polls the line up to 10 times if an OFF status is reported to make
  1341.     sure it's getting the correct message.
  1342.  
  1343.     Instead of a CLEAR SCREEN, KBBS now outputs a HOME CURSOR for just
  1344.     the ANSI highlight bar menus.  Dynamic menus still clear the screen,
  1345.     although we're going to add an option later to do otherwise for
  1346.     special effects (?? is this needed?).
  1347.  
  1348.     The FTS tosser will now unlock all files between packets to keep
  1349.     from holding the Netmail conference locked during long tossing jobs.
  1350.  
  1351.     Logging to the KBBS.LOG for local mode sessions has been fixed.
  1352.  
  1353.     Support for COM interrupts 8 through 15 has been added.
  1354.  
  1355.     The ^K and ^Q keys in the program editor will now display the
  1356.     signal properly in the upper left corner of the current window.
  1357.     The colors have also been fixed in the editor to not change when
  1358.     typing within a block.
  1359.  
  1360.     All picklists will now delay sorting until after exiting the list,
  1361.     and the sort algorithm is now cached to speed up the sorting
  1362.     process by 250%
  1363.  
  1364.     The sort process is now performed in protected mode and doesn't
  1365.     use the stack, so no more stack errors should result from large
  1366.     sort processes.
  1367.  
  1368.     The dialout process detects and reestablishes the carrier speed
  1369.     and error correction variables and leaves the buffer clear for
  1370.     the next process.
  1371.  
  1372.     The DIAL command used in the callback verifier now leaves the
  1373.     buffers clear upon return to the BBS.
  1374.  
  1375.     The import users utility (both KBBS and non-KBBS) will successfully
  1376.     import and index the names properly.
  1377.  
  1378.     Some adjustments made to the distinctive ring detection.
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387. 2.00Z.20F Test release
  1388. ---------
  1389.  
  1390.   DOS SHELL
  1391.  
  1392.     FINALLY we have found the culprit causing the DOS Shell to engage
  1393.     so often when escaping out of things...  simply an uninitialized
  1394.     register, but a TOUGH one to find.
  1395.  
  1396.  
  1397.   QWK/REP
  1398.  
  1399.     The problem/crash with uploading .REP packets with control
  1400.     messages has been fixed... nothing like trying to push 196K of
  1401.     data onto a 32K stack.
  1402.  
  1403.  
  1404.   FILE AREA AND UTILITIES
  1405.  
  1406.     The "Complete Rebuild" has itself been rewritten and put back in the
  1407.     file index repair menu.  It's SAFE, it's THOROUGH, and we highly
  1408.     recommend you backup your files and run it as soon as you get
  1409.     this release.  This rebuilder fixes most all index structure
  1410.     problems, and the new utilities are stable enough to keep them
  1411.     fixed.
  1412.  
  1413.     In the Tree Editor of the file utilities, the ALT-P key now initiates
  1414.     the new Utility Upload Processor that reprocesses the current file
  1415.     or tagged files as if uploaded.
  1416.  
  1417.     The ALT-W (Tag Multiple) and ALT-A (Tag All) have been repaired so
  1418.     that utilities that act on these tagged batches don't corrupt the
  1419.     subject structure.
  1420.  
  1421.     The tag-and-delete function now works (more testing will prove this).
  1422.  
  1423.     A whole new menu for the file utilities to eliminate some confusion
  1424.     as we start adding a lot more features to the menus.
  1425.  
  1426.     Deleting files from the file tree will now REALLY delete the file
  1427.     from the name and new file indexes.
  1428.  
  1429.     In the file tree, the "Offline" "Free" and "Resolution" messages
  1430.     now follow the descriptions.
  1431.  
  1432.     The correct status is now passed back to KBBS after external
  1433.     protocol transfers.
  1434.  
  1435.  
  1436.   UPLOAD PROCESSOR
  1437.  
  1438.     OKAY! Major upgrade of the upload processor, reflecting at least
  1439.     a month of work.  Read this section carefully.
  1440.  
  1441.     Two items from the old upload processor setup are still being
  1442.     used, and are found in Setup, Global, Global Toggles:
  1443.  
  1444.       - Whether or not the user has to enter the name prior to upload
  1445.  
  1446.       - The default archive extension on your system, now only used
  1447.         in searching for a name in the file section when a user tries
  1448.         to flag a file without specifying the extension.
  1449.  
  1450.     The UPLOAD REP function will now assume that all files uploaded
  1451.     during that function are indeed .REP files, regardless of their
  1452.     actual name(s).  More than one .REP file may be uploaded at once,
  1453.     and all are processed offline if the "(G)oodbye after transfer"
  1454.     option is selected.  Subsequently, the regular upload function
  1455.     will NOT import a .REP file into the message base, but will
  1456.     process it as a normal file and place it in the appropriate
  1457.     upload path.
  1458.  
  1459.     The file utilities menu has been broken away from the main
  1460.     utilities menu to make it more readable, since we're going to
  1461.     be adding dozens of options to the menu(s) over the next couple
  1462.     of weeks.
  1463.  
  1464.     Because of the configurability of the new upload processor, the
  1465.     "Allowed upload extensions" picklist has been eliminated.
  1466.  
  1467.     The upload processor setup is now defined separately for each
  1468.     file index, and has three parts to it:
  1469.  
  1470.       UPLOAD SUBJECTS
  1471.  
  1472.         Just like before, except now the "complete rebuild"
  1473.         doesn't erase them!
  1474.  
  1475.       GENERAL PROCESSOR
  1476.  
  1477.         This is the general setup for processing uploaded files.
  1478.         There are LOT of new options... just keep an eye on the
  1479.         help window below and it's all pretty self-explanatory.
  1480.  
  1481.       CUSTOMER PROCESSOR
  1482.  
  1483.         This is a picklist of GENERAL PROCESSOR screens, where you
  1484.         can define a completely different processing method for
  1485.         different matching file masks.  If an uploaded file doesn't
  1486.         match any of the masks in this picklist, the GENERAL
  1487.         PROCESSOR settings are used.
  1488.  
  1489.     The upload processor only operates in ASCII and ANSI modes.  A
  1490.     RIP mode processor will come later.  Two new @ control codes have
  1491.     been added for customizing the new ULPROC display screens to
  1492.     the sysop's liking:
  1493.  
  1494.       (these @ codes should be uppercase when used, shown here in lower
  1495.       case for ease of e-mail transmission)
  1496.  
  1497.       @ulprocname@    The current filename being processed, changed to
  1498.                       the new name of the file if renamed by the upload
  1499.                       processor.
  1500.  
  1501.       @ulprocstat@    The upload processor error status message, such
  1502.                       as "Too many duplicates" etc.
  1503.  
  1504.     The ASCII screen (ULPROC.BBS) or non-highlight bar ANSI screen
  1505.     (ULPROC.ANS) is displayed only once at the startup of the upload
  1506.     processor, then status messages are shown on subsequent lines as
  1507.     files are processed.
  1508.  
  1509.     If the ANSI screen (ULPROC.ANS) contains highlight bar control codes,
  1510.     it is redisplayed for each file before processing, and may be
  1511.     structured similar to the highlight bar ANSI menus to highlight
  1512.     different status messages during the processor operation.  The
  1513.     ULPROC.ANS screen operates differently in that more than one option
  1514.     may be highlighted at one time.  The "Key" field is used to denote
  1515.     which message belongs to which status.
  1516.  
  1517.     One other important difference in the way the highlight bars work is
  1518.     the ULPROC.ANS screen's highlight bars are displayed WITHOUT stripping
  1519.     the ANSI codes in the bar text itself.  This allows ANSI modification
  1520.     of the highlight color to create special effects.  (See example)
  1521.  
  1522.     The highlight bar control codes for the upload processor ANSI screen
  1523.     are as follows:
  1524.  
  1525.       @00bf~##@    1. Normal Menu Text goes here   @end@
  1526.  
  1527.       00 =  these two digits are ignored, since there is no row/column
  1528.             organization in the ULPROC.ANS screen(s).
  1529.  
  1530.       ## =  the current stage of operation, two digits as follows:
  1531.  
  1532.              01=  Examining file
  1533.              02=  Dearchiving a file
  1534.              03=  Working on embedded archives
  1535.              04=  Running external process (any of them)
  1536.              05=  Running external process 1
  1537.              06=  Running external process 2
  1538.              07=  Running external process 3
  1539.              08=  Running external process 4
  1540.              09=  Running external process 5
  1541.              0A=  Scanning for viruses
  1542.              0B=  checking for duplicates
  1543.              0C=  adding archive comment
  1544.              0D=  getting archive description
  1545.              0E=  Running external process 6
  1546.              0F=  rearchiving file
  1547.              10=  Cleaning up temporary files
  1548.              11=  Moving archive to upload directory
  1549.              FE=  done, failed
  1550.              FF=  done, passed
  1551.  
  1552.       B  =  the highlight bar background color, 0 through 9 and
  1553.             A through F
  1554.  
  1555.       F  =  the highlight bar foreground color, 0 through 9 and
  1556.             A through F
  1557.  
  1558.  
  1559.   AT CODE FORCED LENGTH
  1560.  
  1561.     For normal @ control codes (not color or highlight bar codes) a
  1562.     colon and number may be added to the end inside of the code to
  1563.     force a specific length result.  For example (using lower case
  1564.     so this may be posted in netmail), "@user:20@" would return
  1565.     "Keith Anderson      " (20 characters total) if the current
  1566.     caller's name is Keith Anderson.
  1567.  
  1568.  
  1569.   SYSOP DEFINED FLAGS
  1570.  
  1571.     They have finally been removed to make room for the sysop defined
  1572.     database fields that we started linking in today and should be a
  1573.     reality within a day or so.
  1574.  
  1575.  
  1576.   FTS
  1577.  
  1578.     The command line parameter KBBS TOSS will now work without lockup.
  1579.  
  1580.     To satisfy those that complain because there are different
  1581.     keystrokes to access the FTS functions than before, the MAILER
  1582.     menu will now automatically be selected upon entry to the KBBS
  1583.     Fido utility menu.
  1584.  
  1585.     In the TIC area setup, it really DOES default to the "MAIN" file
  1586.     tree now, even if the tree field is blank.
  1587.  
  1588.  
  1589.   MESSAGE BASE
  1590.  
  1591.     One last conflict between two nodes saving/tossing messages has
  1592.     been resolved... no more halts or delays.
  1593.  
  1594.     The "From" name is now checked properly using uppercase so that
  1595.     messages "Not From User" are screened out properly.
  1596.  
  1597.  
  1598.   USER EDITOR
  1599.  
  1600.     No more having to rebuild conference HI/LO, etc, after editing a
  1601.     user record!  We found the stray pointer.
  1602.  
  1603.     New utilities to import/export KBBS user databases has been
  1604.     added.
  1605.  
  1606.  
  1607.   SEQ ADDITIONS
  1608.  
  1609.     ATTACHEDFILE :string  (variable)
  1610.  
  1611.       Allows access to the name of the file attached to the current
  1612.       message.  Only a 12 character name is allowed (name and
  1613.       extension) since the file must always reside in the ATTACHPATH
  1614.       directory (ATTACHPATH is a variable of type Path).
  1615.  
  1616.     ATTACHEDREALNAME :string (variable)
  1617.  
  1618.       This is the real name of the file attached to the current
  1619.       message.  Because two files with the same name could be
  1620.       attached to different messages, one or both must be renamed
  1621.       before being stored in the ATTACHPATH directory.  The real
  1622.       name is stored in this field, and is used to rename the file
  1623.       back to its real name when retrieved from the attach directory.
  1624.  
  1625.     QUEUEFTSPOLL( <address>, <echomail> );
  1626.  
  1627.       <address> is of type string, in a standard fidonet address
  1628.       format of x:yyy/zzz, and <echomail> is of type boolean.
  1629.  
  1630.       This adds a poll request to the queue for the specified
  1631.       address.  If <echomail> is TRUE, echomail will be delivered
  1632.       with the poll event.
  1633.  
  1634.     FREQFILE( <address>, <priority>, <name>, <password>, <date> );
  1635.  
  1636.       <address> is of type string, in a standard fidonet address
  1637.       format of x:yyy/zzz, <name> and <password> are of type string,
  1638.       <date> is of type date, time or integer.
  1639.       <priority> is of type CHAR with possible values of
  1640.  
  1641.         "I" immediate
  1642.         "C" crash (direct, economy time)
  1643.  
  1644.       This adds an FTS File REQuest to the FTS queue to the above
  1645.       address, or adds the request to an entry already in the queue
  1646.       to the specified address.
  1647.  
  1648.       If no password is needed, use "" (nul).  If no date is needed,
  1649.       use 0 (zero).
  1650.  
  1651.     SENDFTSFILE( <address>, <priority>, <path>, <deleteafter>, <message> );
  1652.  
  1653.       <address> is of type string, in a standard fidonet address
  1654.       format of x:yyy/zzz, <path> is of type string.  <priority> is
  1655.       of type char:
  1656.  
  1657.         "I" immediate
  1658.         "C" crash (direct, economy time)
  1659.         "H" hold
  1660.  
  1661.       <deleteafter> is of type boolean:  TRUE=delete the file after
  1662.       a successful transmission.  <message> is of type boolean: TRUE=
  1663.       send a message header to the sysop of the remote system notifying
  1664.       of the enclosed file(s).
  1665.  
  1666.       Adds a SENDFILE command to the queue.  If a queue entry already
  1667.       exists to the above system, the sendfile is added to the
  1668.       existing entry in order to combine dialout events.
  1669.  
  1670.     EXECNEXTQUEUE;
  1671.  
  1672.       Executes the next FTS outbound queue entry, if any.  The
  1673.       current node MUST have a modem installed for this command
  1674.       to be successful.  Because a queue execution results in a
  1675.       recycle of the current node, this command terminates all
  1676.       SEQ execution and disconnects the current online caller,
  1677.       if any.
  1678.  
  1679.  
  1680.   SEQ PROGRAM EDITOR
  1681.  
  1682.     A second "Close" option has been added to the File menu, and some
  1683.     messages hinting to close files if running out of memory.
  1684.  
  1685.  
  1686.   Other FIXES AND ADDITIONS
  1687.  
  1688.     Message quoting has been dramatically improved in this version.
  1689.  
  1690.     When a local mode user runs out of time, things now recycle/
  1691.     shutdown properly.
  1692.  
  1693.     Text mode is now restored at the end of a RIP session.
  1694.  
  1695.     A ClearScreen is now issued before any ANSI screen menu containing
  1696.     highlight bars to insure that they are positioned correctly.
  1697.  
  1698.     Non-standard modem addresses and ports are now NOT case sensitive.
  1699.  
  1700.     When LOADUSER fails to find the specified user, KBBS will
  1701.     automatically initialize an empty user assuming a "New User"
  1702.     posture.  This should solve some problems with improper information
  1703.     getting stored in new user records.
  1704.  
  1705.  
  1706.   ZMODEM/8K
  1707.  
  1708.     Until we can narrow down the slipping blocksize problem with
  1709.     KBBS's internal Zmodem/8K, it will automatically detect the
  1710.     problem and revert to regular Zmodem after the 2nd attempt...
  1711.     in our tests, this seems to recover and proceed with the
  1712.     transfer with minimal delays.
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722. 2.00Z.20E Test Release
  1723. ---------
  1724.  
  1725.   USER DATABASE/ACCESS CHANGES
  1726.  
  1727.     The last read mail pointers and other supplemental records are
  1728.     now only loaded when needed, so the login process is a LOT faster,
  1729.     and the LOADUSER, FIRSTUSER and NEXTUSER functions are also a
  1730.     LOT faster.  There will be a slight pause the firsst time the
  1731.     pointers are accessed (when beginning to read a message, etc.)
  1732.     while KBBS loads the pointer records, but under normal operation,
  1733.     this shouldn't be very noticable.
  1734.  
  1735.     The NEXTUSER function is now functioning, and the USERDB program
  1736.     by Todd Powers is now functioning because of our bug fix.
  1737.     That USERDB.SEQ is HIGHLY RECOMMENDED and distributed with the
  1738.     KBBS archives.  Fine work, Todd!  Send us your resume. <g>
  1739.  
  1740.     The VBBS user database import has been completed.
  1741.  
  1742.     The Maximus user database import has been completed.
  1743.  
  1744.  
  1745.   FTS CHANGES, ADDITIONS, IMPROVEMENTS
  1746.  
  1747.        ***   READ THIS, IMPORTANT CHANGES HAVE BEEN MADE   ***
  1748.  
  1749.     The FTS setup code has been broken away from the main setup
  1750.     utilities to provide it with more memory to function properly.
  1751.     (Note:  all executables will be recombined with the release
  1752.     of the DOS protected mode and OS/2 versions, Z.21)
  1753.  
  1754.     Instead of using the outbound password defined in the EVENTS, a
  1755.     new picklist has been created to define all outbound passwords.
  1756.     The picklist is also used to lookup commonly used addresses
  1757.     by recipient name.  This has been placed in all outbound FTS
  1758.     windows, and SEQ commands and functions to scan the list
  1759.     have also been added (see SEQ ADDITIONS below).
  1760.  
  1761.     KBBS now uses the session password defined in the above outbound
  1762.     list in the EMSI and YOOHOO headers when receiving calls.
  1763.  
  1764.     The nodelist search engine has been given a shot of speed... it'll
  1765.     now search the big Fido nodelist in a few seconds instead of a
  1766.     few minutes.
  1767.  
  1768.  
  1769.   FIXES, UNCATEGORIZED
  1770.  
  1771.     Misc. misplacements in various screens in the utilities have
  1772.     been fixed.
  1773.  
  1774.     Another strange crosslink between Files/KB allowed per period and
  1775.     Bytes/time credit for messages posted has been fixed.
  1776.  
  1777.     The DOS Shell function will now look for the proper COMMAND.COM
  1778.     on systems with more than one operating system installed.
  1779.  
  1780.     The ANSI highlight bar menus won't crash now when the menu screen
  1781.     options don't match the underlying menu configuration (so items
  1782.     on the menu may be disabled for certain users, etc).
  1783.  
  1784.     Stray @ signs shouldn't appear in ANSI menu screens now... fixed.
  1785.  
  1786.     Display screens with complex pipe codes will now work properly
  1787.     instead of truncating and scrambling them.
  1788.  
  1789.  
  1790.   FIXES, FILE SECTION
  1791.  
  1792.     Problems with uploading have been fixed, such as name recognition,
  1793.     etc., althought the new upload processor didn't make it for this
  1794.     test release.
  1795.  
  1796.     The slash "/" has been included in the word parser for the Ksearch
  1797.     rebuilder so that words like "OS/2" can be keyworded.
  1798.  
  1799.     The following structure description file will now import:
  1800.  
  1801.       3DVCP22.ZIP 3DVCP22.ZIP Visual Calendar Planner 2.2 for Windows
  1802.       !>ASP An extremely powerful scheduler with
  1803.       !>no learning curve. MS Database engine.
  1804.       !>3d look
  1805.       ADJSHARE.ZIP ADJSHARE.ZIP AUTOGRAMMATIK I: Adjective endings <ASP>
  1806.       !>probably contains one of the most
  1807.       !>succinct explanations of German
  1808.       !>adjective endings you will see anywhere.
  1809.       !> Online dictionary too. Viel Spass!
  1810.       AJEWISH5.ZIP AJEWISH5.ZIP A Jewish Mother's Cookbook V 5.0 <ASP>
  1811.       !>Anyone who's interest in Jewish recipes
  1812.       !>will love this cookbook! "2 Thumbs Way
  1813.       !>Up" J Binder
  1814.  
  1815.     (the above example should be justified to the left, but is indented
  1816.     for this document only)
  1817.  
  1818.  
  1819.   ADDITIONS, UNCATEGORIZED
  1820.  
  1821.     A "Toggle Status Bar" has been added to the SEQ key functions.
  1822.  
  1823.  
  1824.   SEQ ADDITIONS
  1825.  
  1826.     FTSLOOKUP :boolean   (function)
  1827.  
  1828.       Works from the current message header information, searches for
  1829.       the current MESSTO in the outbound password list and sets the
  1830.       FTS Destination and password if found.  Returns TRUE if found.
  1831.  
  1832.  
  1833.     ADDFTSLOOKUP;
  1834.  
  1835.       Adds the current message header information as an outbound
  1836.       lookup entry, specifically the MESSTO name, the FTSDEST address
  1837.       and the password.  After issuing this command, the FTSLOOKUP
  1838.       function will retrieve the address and password when the name
  1839.       is provided.   Note:  this command does not look for the
  1840.       existence of an entry before adding the current one, so dupes
  1841.       will be added if FTSLOOKUP isn't polled first.
  1842.  
  1843.     UPDATEFTSLOOKUP;
  1844.  
  1845.       Similar to ADDFTSLOOKUP, this command works from the current
  1846.       message header, except it simply updates the information in
  1847.       the lookup database with the information in the header.  That
  1848.       means if someone has changed the address or password on
  1849.       the destination system, the entry for that name will be updated
  1850.       in the lookup table.  If the name is nul/blank, the specified
  1851.       address is searched and the password is updated.  If the entry
  1852.       is not found in the list, a new one is added with the
  1853.       information in the current message header.
  1854.  
  1855.  
  1856.  
  1857. 2.00Z.20D Test Release (includes Z.20B and C)
  1858. ---------
  1859.  
  1860.   RIP FIXES/IMPROVEMENTS
  1861.  
  1862.     The local RIP graphics now support any VESA superVGA card.
  1863.     If the display is not detected as supporting EGA modes, VESA
  1864.     800x600 mode will be selected, and the RIP screen (640x350)
  1865.     will be shown in the upper lefthand corner.  This should
  1866.     enable proprietary cards with software VESA drivers to
  1867.     display local RIP graphics.
  1868.  
  1869.     Local mode RIP fonts should now work in any environment.
  1870.  
  1871.     The ANSI to RIP converter is now faster and much more accurate.
  1872.  
  1873.     The ANSI to RIP scrolling has been eliminated.  When text reaches
  1874.     the bottom of the screen, the screen is cleared and text begins
  1875.     again at the top.
  1876.  
  1877.  
  1878.   FILE AREA FIXES/ADDITIONS
  1879.  
  1880.     A complete rewrite/overhaul to the file utilities has resulted
  1881.     in much more stability.  Testing will tell, however.
  1882.  
  1883.  
  1884.   OTHER FIXES/ADDITIONS (UNCATEGORIZED)
  1885.  
  1886.     The display file output engine now performs a fast read and
  1887.     allows the disk to settle before the file is sent to the
  1888.     modem.  This results in an overall faster display from the
  1889.     callers' point of view.
  1890.  
  1891.     The "Chat" SEQ Key has been expanded to include an optionally
  1892.     definable text file that will be displayed, if present, to the
  1893.     user before entering chat mode.
  1894.  
  1895.     SEQ Program execution has been cleaned up so that no more
  1896.     lockups or mis-executions happen.  This includes
  1897.  
  1898.        - SEQ keys
  1899.        - internode commanded SEQ's
  1900.        - executed from menu trees
  1901.        - the CALLSEQ command
  1902.        - the CHAINSEQ command
  1903.        - SEQ events
  1904.        - many other places
  1905.  
  1906.     The global configuration is now being updated properly when
  1907.     the related SEQ variables are altered (i.e. couldn't change
  1908.     the total number of calls on system)
  1909.  
  1910.     The compiler now skips TAB and control characters in the
  1911.     source file.
  1912.  
  1913.     If no default is specified in a menu, the highlighted bar
  1914.     is properly selected when the ENTER key is pressed (for ANSI
  1915.     mode menus)
  1916.  
  1917.     When a user runs out of time, the modem is now flushed properly
  1918.     instead of locking up some systems.
  1919.  
  1920.     The hangup process should be working properly now.  (It was
  1921.     locking up some machines if the user ran out of time)
  1922.  
  1923.     The line editor default menu is now set to Save instead of
  1924.     Continue.
  1925.  
  1926.     The login process has been corrected for alias nodes to state
  1927.     "Is your alias spelled correctly?" instead of "name."
  1928.  
  1929.     The internal file copy routines will no longer use XMS or EMS
  1930.     memory if running under OS/2.  This speeds up the copy operation
  1931.     by keeping OS/2 from enlarging the swap file, etc.
  1932.  
  1933.     In Setup, Nodes, the Line Monitor toggle is now working, and
  1934.     the USE FIFO toggle is no longer crossedlinked with it.
  1935.  
  1936.     Changes made to the global setup from within the SEQ are
  1937.     now saved to disk properly.
  1938.  
  1939.     The recursive archive setup field is now pointing to the
  1940.     correct data.
  1941.  
  1942.     The "Upload Text" function in the full screen editor no
  1943.     longer wraps long lines in order to preserve ANSI screens.
  1944.  
  1945.     The distictive ring initiates a recycle if the incorrect
  1946.     ring is detected.
  1947.  
  1948.  
  1949.   FTS FIXES AND ADDITIONS
  1950.  
  1951.     The last scanned pointer file system has been changed to match
  1952.     the speed and reliability of the regular last read pointers
  1953.     in the main BBS.  Hence, this is a one-way upgrade, but more
  1954.     stable than previous versions.
  1955.  
  1956.     BIG BUG:  If an incoming FTS caller was using an address of
  1957.     0:0/0, the first record in the FTS User list was selected
  1958.     (because of the blank secondary address fields) and their
  1959.     mail was delivered to the anonymous caller... this has been
  1960.     fixed!
  1961.  
  1962.     The magic name processor for FTS file requests will now handle
  1963.     wildcards within a magic name setup properly.  Previously they
  1964.     were being rejected as not found.
  1965.  
  1966.     Global FREQ directories are now working properly.
  1967.  
  1968.     The FTS User "Pause" toggle is now working correctly.
  1969.  
  1970.  
  1971.   DOOR ADDITIONS
  1972.  
  1973.     Three more door drop file types have been added:
  1974.  
  1975.       Code    BBS type         Filename
  1976.  
  1977.       8       Pheonix          INFO.BBS
  1978.       9       Spitfire         SFDOORS.SYS
  1979.       A       2AM              JUMPER.DAT
  1980.  
  1981.  
  1982.   SEQ PROGRAM EDITOR
  1983.  
  1984.     We have rebuilt the SEQ program editor again and eliminated the
  1985.     Turbo Vision libraries.  The result is a less buggy editor with
  1986.     less memory constraints and the ability to open unlimited files
  1987.     simulteneously when we release the protected mode (Z.21)
  1988.     version.
  1989.  
  1990.     Additional fixes were made to the editor window to allow the
  1991.     menu bar to remain visible at the top in 80x25 text mode, and the
  1992.     editor window's side lines have been eliminated to expand the
  1993.     editable region by 2 more characters.
  1994.  
  1995.  
  1996.   CORRUPT INDEX DETECTION
  1997.  
  1998.     The balanced trinary tree engine that keeps track of just about
  1999.     everything in KBBS now has a corrupt index detection subroutine
  2000.     that will keep KBBS from locking up if an index file is corrupt.
  2001.     Because of the frequency in which this routine is called, we're
  2002.     currently unable to pass the corruption status to the sysop, but
  2003.     it simply shuts down the tree processes, ignoring the read/write
  2004.     requests...  if you notice that KBBS isn't finding files, blocking
  2005.     dupe messages, finding users, etc., then rebuild that particular
  2006.     index.  We'll be adding some kind of status passing method
  2007.     at a later date.
  2008.  
  2009.     We tested this pretty extensively by removing lock control from
  2010.     the indexer and allowed 5 nodes to write to the index
  2011.     simluteneously, corrupting it to bits...  KBBS eventually ingored
  2012.     the index, where before it would have locked up tight.
  2013.  
  2014.  
  2015.   ANSI HIGHLIGHT BAR MENUS
  2016.  
  2017.     When using ANSI display screens for menus (in the "Sysop
  2018.     defined display menus" in the menu tree or the optional
  2019.     display screen parameter for the MENU statement) a new
  2020.     @ code sequence may be added to the ANSI screen to enable
  2021.     KBBS's internal highlight bars on the ANSI screen itself.
  2022.  
  2023.     In each location where you want a highlight bar to be
  2024.     displayed, the following @ code syntax must be used:
  2025.  
  2026.       @xyBF~key@    1. Normal Menu Text goes here   @end@
  2027.  
  2028.     where
  2029.  
  2030.       x     the menu column, a number between 1 and 4 inclusive
  2031.  
  2032.       y     the menu row, a number from 1 to 9, then A (10)
  2033.             to I (18)
  2034.  
  2035.       B     the highlight bar background color, 0 through 9 and
  2036.             A through F
  2037.  
  2038.       F     the highlight bar foreground color, 0 through 9 and
  2039.             A through F
  2040.  
  2041.       key   the key that activates the menu selection,
  2042.             corresponding to the actual menu configuration in the
  2043.             menu tree or MENU statement.  If this key doesn't
  2044.             exist in the menu configuration, the user will be able
  2045.             to highlight the selection but not actually select it.
  2046.             If a select exists in the menu configuration but not
  2047.             defined on the ANSI screen, the user will be able to
  2048.             select that option by pressing the keys directly.
  2049.             (After a long night of working on this, I think I've
  2050.             lost my English... I'll come back and try to explain
  2051.             this better at another time.)
  2052.  
  2053.     Note:  when assigning the x and y values, make sure they are
  2054.            contiguous.  For example, KBBS won't skip from column
  2055.            1 to 3 if column 2 doesn't exist.
  2056.  
  2057.     Each highlight bar terminates at the @end@ or at the end of
  2058.     the current ANSI line, whichever comes first (NOTE: "@end@"
  2059.     must be in upper case, but shown here in lower case so this
  2060.     file may be posted online).
  2061.  
  2062.     When the ANSI screen menu is displayed (it must be a display
  2063.     screen with an extension of .ANS), if any highlight bar codes
  2064.     exist in the menu, the highlight bar option is automagically
  2065.     activated.  A highlight bar will be placed on the default
  2066.     menu selection, or on column 1 row 1 if no default was
  2067.     defined.  The left-right cursor keys transvers the columns
  2068.     and the up-down keys transvers the rows.  The ENTER key will
  2069.     then select the currently highlighted menu item.
  2070.  
  2071.     This whole process adds a small delay before any ANSI menu is
  2072.     displayed.
  2073.  
  2074.     (A sidenote, a utility in ARIdraw will simplify the
  2075.     construction of KBBS ANSI menus.  We will be testing ARIdraw
  2076.     with a limited number of registered sysops in October)
  2077.  
  2078.  
  2079.   NEW SEQ RESERVED VARIABLES
  2080.  
  2081.     SCROLLLOCK :boolean
  2082.     NUMLOCK :boolean
  2083.     CAPSLOCK :boolean
  2084.  
  2085.        These three variables poll for and set the state of the
  2086.        scroll lock, num lock and caps lock respectively.   This
  2087.        only affects the hardware running the current node and
  2088.        has no affect on the remote caller.
  2089.  
  2090.  
  2091.   NEW SEQ COMMANDS AND FUNCTIONS
  2092.  
  2093.     STRIPANSI( <instring> ) :string   (function)
  2094.  
  2095.       <instring> is of type string.
  2096.  
  2097.       Returns a string of the parameter with the ANSI codes removed.
  2098.       Does not account for any cursor movement sequences EXCEPT the
  2099.       Cursor Right (C) sequence, which is converted to spaces.
  2100.  
  2101.  
  2102.  
  2103. 2.00Z.20A Test Release
  2104. ---------
  2105.  
  2106.   LEFT OUT:  Due to the time taken to get our system back up,
  2107.      we just removed major new additions that had problems
  2108.      rather than delay the release any longer.  The following
  2109.      will be debugged and ready for the next release:
  2110.  
  2111.        - New highlight bar based file, door, bulletin and
  2112.          conference trees
  2113.  
  2114.        - ANSI screen highlight bar menus
  2115.  
  2116.        - new upload processor...  the new upload processor was
  2117.          having problems so we put the old code back in for
  2118.          this release.  A follow up patch release will come
  2119.          soon that will have the new code fixed, which
  2120.          includes the .TIC support working and the file
  2121.          utility level upload processor.
  2122.  
  2123.  
  2124.   IMPORTANT FTS CHANGE MADE:
  2125.  
  2126.     The FREQ directory no longer exists, but has been replaced
  2127.     by a picklist setup of directories.  You must enter your
  2128.     old directory in the new list for these types of FTS file
  2129.     requests to resume operation.
  2130.  
  2131.  
  2132.   SEQ ENCRYPTION
  2133.  
  2134.     (testing this encryption is critical... please report any SEQ
  2135.      FAULTs that any occur, and how to reproduce them)
  2136.  
  2137.     To protect against the threat of a SEQ executable decompiler,
  2138.     we have added a statement:
  2139.  
  2140.       SEQENCRYPTION "<encryptkey>"
  2141.  
  2142.     <encryptkey> is any number of characters placed between a set of
  2143.     double quotes.  Characters not allowed in the encryption key:
  2144.  
  2145.       "           (a double quote, used to terminate the key)
  2146.       (* or *)    comment characters
  2147.       { or }      comment characters
  2148.       /* or */    comment characters
  2149.  
  2150.     Examples of valid encryption key statements:
  2151.  
  2152.       SEQENCRYPTION "This is my encryption key!!"
  2153.       SEQENCRYPTION "908734 923 498249823498239 87239 8723"
  2154.       SEQENCRYPTION "ùí½╡ñº¿Æ£░║─äåçΩ±√ÇüGQ\"
  2155.       SEQENCRYPTION "It was Andy's fifth birthday and his parents
  2156.          were getting ready to take him out for a movie.  His
  2157.          mother told Andy to pack a snack for himself in her purse
  2158.          to have during the show.  The mother assumed he'd put
  2159.          in a granola bar or cookie...Later, in the theater, Andy
  2160.          leaned over to his mother and whispered...'Mom, may I
  2161.          have my ice-cream sandwich now?'"
  2162.  
  2163.     This must come absolutely first in the SEQ program, before any
  2164.     DEFINE, STRUCT or any other statements except comments.
  2165.     Encrypted SEQ programs may call non-encrypted SEQ's and vice-
  2166.     versa.  SEQ execution speed is not affected by the size,
  2167.     presence or absence of an encryption key.
  2168.  
  2169.     Z.20 or later is REQUIRED for all encrypted SEQ programs, or
  2170.     KBBS will abort with a SEQ Program Fault.  A SEQ is not
  2171.     encrypted (other than the usual compression) if the
  2172.     SEQENCRYPTION statement isn't present.  Z.20 and all versions
  2173.     in the future will still execute SEQ's from all past versions.
  2174.  
  2175.  
  2176.   INTERKERNEL
  2177.  
  2178.     The internode kernel has been reworked to work faster and not
  2179.     cause exception errors on some systems, specifically those
  2180.     running OS/2 (our shared-memory trick wasn't working with
  2181.     some versions of Warp the way it was supposed to).
  2182.  
  2183.  
  2184.   FIXES
  2185.  
  2186.     The internode chat should be working properly in this release...
  2187.  
  2188.     File locking conflicts in message importing have been resolved.
  2189.  
  2190.     ANSI reading online has been fixed.
  2191.  
  2192.     The PCBOARD.SYS drop file type is now working correctly.
  2193.  
  2194.     New full screen editor code in this version... no more wrapping
  2195.     line problems, lines left behind, extra lines, etc. etc. etc.
  2196.  
  2197.     The ESCAPE key in the editors' menus doesn't save the message.
  2198.  
  2199.     The LASTMAINBULL and LASTBULL variables, if altered, will now
  2200.     be properly updated in the user record on the next call.  When
  2201.     accessed, these variables always return the date/time of what
  2202.     they were set to on the LAST call.
  2203.  
  2204.     Sometimes if an error occurred online, KBBS would drop to the DOS
  2205.     prompt rather than recycle.  This has been fixed.
  2206.  
  2207.     FOSSIL support has been reverted to its state before Z.19.  The
  2208.     fixes we made evidentally made QEMM systems abort and some DOS
  2209.     systems lockup.
  2210.  
  2211.     The parallel file that now holds personal mail flags was being
  2212.     enlarged improperly, flagging users for mail in conferences
  2213.     where they didn't have any.  This has been fixed.
  2214.  
  2215.  
  2216.   IMPROVEMENTS
  2217.  
  2218.     The limit on the maximum dials and failures for FTS mailer
  2219.     calls has been increased to 255.  We still don't know why
  2220.     it was limited to 20.
  2221.  
  2222.     The highlight bar in the dynamic menus show up regardless
  2223.     of a default menu option.
  2224.  
  2225.     Message passwording has been completely removed due to lack
  2226.     of support from QWK and other offline message formats.  The
  2227.     reserved variable MESSPW is still support, although it always
  2228.     returns NUL and assignments are ignored.
  2229.  
  2230.  
  2231.   FTS ADDITIONS AND IMPROVEMENTS
  2232.  
  2233.     The Global FREQ directory and password have been replaced by
  2234.     a picklist of File Request Directories in the FTS Setup menu.
  2235.  
  2236.  .... LAST MINUTE NOTE:  The .TIC test crashed a machine with the
  2237.       release version, so we disabled functionality for the
  2238.       TESTZ20A version.  We will diagnose the problem and
  2239.       release follow-up patch with this support enabled.
  2240.  
  2241.     Basic receive-only .TIC file support has now been added.  TIC
  2242.     files are simply placed in their proper file subjects as
  2243.     defined in the new .TIC file setup.  .TIC hatching and echoing
  2244.     will follow in the next test version.  The setup for this is as
  2245.     follows:
  2246.  
  2247.       - In the FTS SETUP menu, a new picklist named .TIC
  2248.         AREA SETUP defines what file area subjects .TIC files
  2249.         are placed in when received.
  2250.  
  2251.       - In the GLOBAL FTS SETUP, the .TIC UNDEFINED AREA
  2252.         field defines where received files are placed if
  2253.         they don't match any of the defined TIC subjects
  2254.  
  2255.     The FTS Send Files process both in the FTS menu and in the
  2256.     Event setup now contains a toggle to optionally send or not
  2257.     send the "The following files have been sent" message to the
  2258.     destination sysop.
  2259.  
  2260.     A new field has been added to the FTS User setup (which requires
  2261.     upgrading to the database) that allows you to define ALLOWED
  2262.     AREAS.  Toggling off the areas in that picklist make them
  2263.     invisible to that FTS user--they don't show up in Areafix lists,
  2264.     and the user isn't allowed to turn them on, etc.  All toggles
  2265.     default to ON.
  2266.  
  2267.     Tossing of KBBSFido (areafix) packets is done immediately when
  2268.     received, and the reply packet is immediately sent to the sender
  2269.     in the same session.
  2270.  
  2271.     New areafix support has been added, replacing the old, faulty
  2272.     and inadequate support.  References to "Areafix" have been
  2273.     changed to "KBBSFido" due to potential trademark issues with
  2274.     the name "Areafix."  The following is the help reply that you
  2275.     get when you send a message of %HELP to the new AREAFIX:
  2276.  
  2277.       Address all requests to 'KBBSFido', 'Areafix', 'GEcho',
  2278.       'AreaMgr' or 'ConfMgr' (without quotes).  The subject
  2279.       should contain your Areafix password.
  2280.  
  2281.       In the body of the message:
  2282.  
  2283.       [+]<areaname>        Turn ON an area (wildcards allowed).
  2284.       -<areaname>          Turn OFF an area (wildcards allowed).
  2285.       %HELP                This help text is sent.
  2286.       %LIST                Reply with a list of areas available.
  2287.       %QUERY               Reply with a list of ON areas.
  2288.       %UNLINKED            Reply with a list of a OFF areas.
  2289.       %PWD <password>      Change your AreaFix password.
  2290.       %PKTPWD <password>   Change your Packet password.
  2291.       %RESCAN <mm/dd/yy>   Rescan all ON areas starting with specified date.
  2292.       %PAUSE               Suspend all scanning.
  2293.       %RESUME              Resume all scanning.
  2294.       [---]                An optional tear line may be added.  Everything
  2295.                            below the tear line is ignored.
  2296.  
  2297.       An example of an KBBSFido request:
  2298.  
  2299.          From:  Your name
  2300.            To:  Areafix
  2301.            Re:  Yourpassword
  2302.          -------------------------------------------------
  2303.          +ARI*
  2304.          -ARI_OFF_TOPIC
  2305.          %LIST
  2306.          %resume
  2307.          %ReScan 08/14/95
  2308.  
  2309.  
  2310.   ADDITIONS
  2311.  
  2312.     The line monitor has been permanently attached via a toggle
  2313.     in the modem setup
  2314.  
  2315.     An INSERT mode indicator has been added to the top of the
  2316.     full screen editor.
  2317.  
  2318.     Four new conference level fields, and SEQ variables
  2319.     representing these fields have been added:
  2320.  
  2321.       EMPTYSUBJECT :boolean
  2322.  
  2323.         For USEnet newsgroups and other special needs conferences,
  2324.         this allows messages without subjects to be saved in a
  2325.         conference if set to TRUE.
  2326.  
  2327.       FORCETOALL :boolean
  2328.  
  2329.         For USEnet newsgroups and other special needs conferences,
  2330.         KBBS forces the TO field to "ALL" if set to TRUE.
  2331.  
  2332.       FORCEANON :boolean
  2333.  
  2334.         For special needs conferences, the FROM field is forced
  2335.         to "ANONYMOUS" if TRUE.
  2336.  
  2337.       FREEFROM :boolean
  2338.  
  2339.         For special needs conferences, anything is allowed in
  2340.         the FROM field if set to TRUE.
  2341.  
  2342.  
  2343.  
  2344. 2.00Z.19D QUICK FIX
  2345. ---------
  2346.  
  2347.   FIXES
  2348.  
  2349.     All carriage returns were being stripped from messages in
  2350.     QWK packets.
  2351.  
  2352.     The message reader had major problems... now fixed.
  2353.  
  2354.     The chat engine would ignore the local keyboard or anything
  2355.     transmitted from a remote node, unless operating in local
  2356.     mode.
  2357.  
  2358.  
  2359.  
  2360. 2.00Z.19
  2361. --------
  2362.  
  2363.   ENCRYPTION
  2364.  
  2365.     The user database encryption has not been installed.  This
  2366.     version will startup first by prompting for an encryption
  2367.     code and then encrypting the user database.  The entire
  2368.     user database is encrypted with this key, so DON'T LOSE IT.
  2369.  
  2370.  
  2371.   ADDITIONS
  2372.  
  2373.     New fossil support has been added to better detect and handle
  2374.     fossil drivers under Desqview and other multitaskers.
  2375.  
  2376.     Exceptions have been added to the FTS netmail routing that
  2377.     allow routing to a certain node for certain zones/nets except
  2378.     mail to certain nets and/or nodes.
  2379.  
  2380.     A Flag Files option has been added to the menu tree.
  2381.  
  2382.     The dynamic menus have changed considerably.  They are now decent
  2383.     and presentable (unlike the previous crummy menus) and have the
  2384.     following features:
  2385.  
  2386.       - in ANSI mode, cursor keys may be used to select the menu
  2387.         using a highlight bar.  The spacebar also moves the highlight
  2388.         bar around the menu
  2389.  
  2390.       - They are now under control of the MENUPALETTE command...
  2391.         see below.
  2392.  
  2393.     There are some systems that, in upgrading from version to version
  2394.     for months, the serial numbers that keep users from receiving their
  2395.     own messages have been corrupted.  A re-serialize utility has been
  2396.     added to the USERS menu in the sysop utilities to reserialize the
  2397.     user database, FTS users and QWK .NET files.
  2398.  
  2399.  
  2400.   FIXES
  2401.  
  2402.     Messages with long lines are now handled properly.
  2403.  
  2404.     ANSI is now maintained properly between all mail mediums in
  2405.     conferences that allow ANSI.
  2406.  
  2407.     Online message passwording has been removed, since QWK/FTS
  2408.     mail doesn't provide for any security on a message-by-message
  2409.     basis anyway.
  2410.  
  2411.     External protocol parameter replacement has been fixed.
  2412.  
  2413.     PERSONAL MAIL FLAGS should be working now!  it was a dumb programming
  2414.     error that caused this one... just one that was hard to find.
  2415.  
  2416.     Another small bug in the internal Zmodem might have caused problems
  2417.     sending large files, but unsure about this.
  2418.  
  2419.     Problems with the COMPILE command line parameter have been fixed.
  2420.  
  2421.     The problem with infinitely expanding bulletin files has been
  2422.     fixed... although more testing will prove this.
  2423.  
  2424.     To keep problems from occurring when using the LOADUSER,
  2425.     FIRSTUSER and NEXTUSER functions, time is suspended until
  2426.     the STARTUSER command is issued, if ever.  This makes it
  2427.     so temporary loads of other user records don't subtract time
  2428.     from them.  NOTE!  The new variable SUSPEND (boolean) controls
  2429.     whether or not time is suspended.  If you use LOADUSER to
  2430.     retrieve another user's record, then restore the current user's
  2431.     record back with another LOADUSER command, you must set SUSPEND
  2432.     to FALSE!
  2433.  
  2434.     The PCBOARD.SYS drop file set has been fixed.
  2435.  
  2436.     The CHAIN.TXT drop file has been fixed to put the correct
  2437.     name in the Real Name field.
  2438.  
  2439.     The optional file flagging failure screens are now working
  2440.     properly...  testing will prove whether this is true.
  2441.  
  2442.     External protocols should be working again, although not
  2443.     completely tested.
  2444.  
  2445.     The ALT-M (Move Files/Subjects) in the file tree has been fixed.
  2446.  
  2447.     The CHOOSEPROTO command's optional parameter will now correctly
  2448.     display an ANSI, RIP or ASCII file in place of the generic menu.
  2449.  
  2450.     Files attached to inbound FTS messages are now left attached
  2451.     properly.
  2452.  
  2453.     In the Console Screen editor, the fields picklist (when adding
  2454.     fields) would take some systems up to 30 minutes to sort the
  2455.     list, giving the illusion that it was locked up.  (Well, it may
  2456.     as well have been locked up for all of the usefulness it had.)
  2457.     The list is now presorted and displayed in 5 seconds on those
  2458.     same systems.
  2459.  
  2460.     The DELETE TAGGED FILES in the file tree is now working.
  2461.  
  2462.     The "Run user database packer in foreground" is now working.
  2463.  
  2464.     The "Shutdown KBBS" event will now properly leave the modem
  2465.     off hook according to the settings.
  2466.  
  2467.     The ALT-R in the event setup will now execute any event.
  2468.  
  2469.     Some problems causing QWK prescans to not launch have been fixed.
  2470.  
  2471.     Timeslices weren't being yielded properly in the dialer... this
  2472.     has been fixed.
  2473.  
  2474.     Bad ratios are now actively enforced: users can no longer flag files
  2475.     that will exceed the bad ratio (except free files, of course).
  2476.     Before, KBBS would let them flag forever then drop their access
  2477.     on the next call.... this was causing some problems and a rewrite
  2478.     was necessary to fix the whole thing to work as advertised.
  2479.  
  2480.     The LOADUSER, FIRSTUSER and NEXTUSER functions have been fixed
  2481.     to reset node status variables properly.
  2482.  
  2483.     We FINALLY found a bug in the Zmodem that would cause certain
  2484.     terminals to not recognize the autostart sequence... stupid
  2485.     prgrammer error.
  2486.  
  2487.     The status bar toggle has been fixed.
  2488.  
  2489.     Exported NET REP packets and other packets are now producing packets
  2490.     without corruption.  (We found that on systems with less than 262K
  2491.     of EMS or XMS available at initialization of a NEW .REP packet, KBBS
  2492.     was dumping exactly 16256 bytes of garbage after the REP header.
  2493.     This has been fixed.)  This was a virtual memory management problem
  2494.     and could have affected other areas in unpredictable ways that we
  2495.     may not have recognized.
  2496.  
  2497.     The Ksearch rebuilder is now working properly.  Two crucial files
  2498.     were left incomplete that would cause the actual search to return
  2499.     a result of 0 files found.
  2500.  
  2501.     The screen object switcher has been fixed so that crashes don't
  2502.     occur when executing SEQ keys and other SEQ programs chained from
  2503.     edit screens, message reading, menus, editors, etc.  (Field
  2504.     testing will prove whether this was really fixed or not....)
  2505.  
  2506.     Problems with sharing the dupe message index between nodes has
  2507.     been fixed.
  2508.  
  2509.  
  2510.   EXECUTABLE CHANGES
  2511.  
  2512.     The KBBSPROG, KBBSFILE and KBBSUTIL programs have been modified to
  2513.     include their own initialization code, which means you can execute
  2514.     them directly.  Parameters are ignored.  The purpose of this is
  2515.     to reduce memory requirements even further on cramped systems.
  2516.     Parts of these modules are still called from the main KBBS.EXE
  2517.     when necessary, and all KBBS parameters remain the same.
  2518.  
  2519.       KBBSPROG:  just like entering PROGRAMMING from the sysop utilities
  2520.  
  2521.       KBBSFILE:  just like entering TREES, FILES from the sysop utilities
  2522.  
  2523.       KBBSUTIL:  just like typing KBBS at the prompt with no parameters
  2524.  
  2525.  
  2526.   IMPROVEMENTS
  2527.  
  2528.     When adding conferences, the default number becomes the next unused
  2529.     conference number after the last conference added.
  2530.  
  2531.     The SEARCHFILES command (with the Ksearch index) has been modified
  2532.     to NOT ask "view the list" when files are found.  Instead, the
  2533.     number of occurrances found are placed in the title at the top
  2534.     and the list is displayed immediately.
  2535.  
  2536.     The conference list loader has been sped up a little to reduce the
  2537.     delay before the conference list is displayed.
  2538.  
  2539.     The spinning cursor thread's speed has been increased to give the
  2540.     effect of more going on during certain waits.  (Yes, it's silly)
  2541.  
  2542.     If only one conference is setup for scanning and it's the current
  2543.     conference, the conference list is aborted and the above conference
  2544.     is selected automatically for reading.  If no conferences are
  2545.     configured for scanning, the current conference is automatically
  2546.     selected.
  2547.  
  2548.  
  2549.   NEW VARIABLES
  2550.  
  2551.     COMPRESSED :boolean
  2552.  
  2553.       Set this to TRUE for compressed dynamic menus, set it to FALSE
  2554.       for normal dynamic menus.
  2555.  
  2556.     SUSPEND :boolean
  2557.  
  2558.       If set to TRUE, time stops counting down for the current user.
  2559.       The LOADUSER, FIRSTUSER and NEXTUSER commands set this to TRUE.
  2560.       The STARTUSER, LOGIN, etc. commands set this to FALSE.
  2561.  
  2562.     REPLYQUOTE :string[3]
  2563.  
  2564.       Up to three characters to be used by EDITMESSAGE following
  2565.       REPLYMESSAGE to quote the current message.  It is set to
  2566.       the message author's initials and the ">" character when
  2567.       REPLYMESSAGE is called, but may be changed at that point
  2568.       before calling EDITMESSAGE to use a different quote prefix.
  2569.  
  2570.  
  2571.   NEW SEQ COMMANDS AND FUNCTIONS!
  2572.  
  2573.     MENUPALETTE( <c1>, <c2>, ... <c16> );
  2574.  
  2575.       All 16 parameters are of type byte.
  2576.  
  2577.       Note:  all 16 parameters are required!
  2578.  
  2579.       This command changes the color scheme used by all subsequent
  2580.       dynamic menus.  16 parameters are required, defined as follows.
  2581.       In the current version, this only affects ANSI menus.  RIP links
  2582.       will be made to this command for the next version.
  2583.  
  2584.                                               Min   Max  Default
  2585.         c1  = title foreground                 0     15   15
  2586.         c2  = title background                 0      7    7
  2587.         c3  = screen background                0      7    0
  2588.         c4  = menu key foreground              0     15    9
  2589.         c5  = menu key background              0      7    7
  2590.         c6  = menu description foreground      0     15    0
  2591.         c7  = menu description background      0      7    7
  2592.         c8  = menu border                      0      7    7
  2593.         c9  = menu shadow                      0     15    8
  2594.         c10 = Selected foreground              0     15   15
  2595.         c11 = Selected background              0      7    1
  2596.         c12 = reserved, should be set to 0
  2597.         c13 = reserved, should be set to 0
  2598.         c14 = reserved, should be set to 0
  2599.         c15 = reserved, should be set to 0
  2600.         c16 = reserved, should be set to 0
  2601.  
  2602.       The color values are the standard DOS RGB as follows:
  2603.  
  2604.       Black      0      Blue       1       Green      2      Cyan       3
  2605.       Red        4      Magenta    5       Brown      6      LtGray     7
  2606.  
  2607.       DarkGray   8      LtBlue     9       LtGreen   10      LtCyan    11
  2608.       LtRed     12      LtMagenta 13       Yellow    14      White     15
  2609.  
  2610.  
  2611.     LISTPALETTE( <c1>, <c2> ... <c16> );
  2612.  
  2613.       This is exactly the same as MENUPALETTE, but governs the colors
  2614.       in the lists.  Although programs using this command in this version
  2615.       will compile and run, this command has been left unlinked until
  2616.       more testing is performed.  (i.e. it has no effect in this version)
  2617.       More information will be posted in the following version when it
  2618.       is operational.
  2619.  
  2620.  
  2621.     REGISTERINDEX( <index>, <description> );
  2622.  
  2623.       <index> is of type filename, <description> is of type string
  2624.  
  2625.       This command is used to "register" or make KBBS aware of a
  2626.       collection of indexes to use in subsequent index commands
  2627.       and functions, such as SEARCHFILES(%); where % represents
  2628.       all of the indexes registered using this command.  <index>
  2629.       is the name of the index, and <description> is a name or
  2630.       description of the index to display to the user, and has
  2631.       a maximum valid length of 70 characters.  If an index already
  2632.       exists in the list by the same name, the command is ignored.
  2633.  
  2634.       This command is GLOBAL, meaning registered indexes are
  2635.       valid for all subsequent SEQ programs in a session, not
  2636.       just for the current index.
  2637.  
  2638.       If no indexes have been defined, and the % parameter is
  2639.       used in index areas, the "MAIN" index is assumed.
  2640.  
  2641.  
  2642.     CLEARREGISTER;
  2643.  
  2644.       This command clears out the list of indexes defined by calls
  2645.       to REGISTERINDEX.  If no indexes have been added using
  2646.       REGISTERINDEX, this command has no effect.  If the %
  2647.       parameter is used with no indexes defined, the MAIN index
  2648.       is assumed.
  2649.  
  2650.  
  2651.     PAGING( <nodenum> ) :boolean
  2652.  
  2653.       <nodenum> is of type byte.
  2654.  
  2655.       This function returns TRUE if the user on the remote node
  2656.       NODENUM is currently paging the sysop.
  2657.  
  2658.  
  2659.     CHATWITH( <nodenum> );
  2660.  
  2661.       <nodenum> is of type byte.
  2662.  
  2663.       Performs a private, one-on-one chat with the remote node number
  2664.       <nodenum>.  This is identical to the direct sysop chat (defined
  2665.       in the SEQ keys) but is between two users that are online.
  2666.       KBBS will attempt to connect and chat with <nodenum> for 15
  2667.       seconds before timing out and aborting.  No message is displayed
  2668.       to the user during connection protocol establishment.
  2669.  
  2670.  
  2671.   EXTENDED COMMANDS
  2672.  
  2673.     The following commands have been extended to use the % parameter
  2674.     in place of the <index> in order to make use of multiple indexes
  2675.     defined by the REGISTERINDEX command:
  2676.  
  2677.     FLAGFILE( <index>, <file> );
  2678.  
  2679.       Example: FLAGFILE(%,'FILELIST.ZIP');
  2680.  
  2681.       When flagging <file> using an <index> of %, the first occurrance
  2682.       of <file> in the list of indexes will be flagged.
  2683.  
  2684.  
  2685.     DOWNLOADBATCH( <index> );
  2686.  
  2687.       Example: DOWNLOADBATCH(%);
  2688.  
  2689.       The normal process of this command is to prompt the user to
  2690.       enter additional filenames to include in the download batch.
  2691.       The first occurrance in the list of indexes of any files
  2692.       entered by the user will be flagged.
  2693.  
  2694.  
  2695.     SEARCHFILES( <index>, <searchspec> );
  2696.  
  2697.       Example: SEARCHFILES(%);
  2698.  
  2699.       This command has been extended to search through all of the
  2700.       indexes defined using the REGISTERINDEX command.
  2701.  
  2702.       IMPORTANT NOTE:  when using SEARCHFILES with multiple indexes,
  2703.       the Ksearch databases MUST exist for the specified indexes...
  2704.       the slow search is NOT performed unless only a single index
  2705.       is specified or registered!
  2706.  
  2707.     In the menu tree (Trees, Menus), the DOWNLOAD BATCH function that
  2708.     may be defined as a menu selection may also use multiple indexes
  2709.     by using % as the name of the index.
  2710.  
  2711.  
  2712. Z.1818
  2713. ------
  2714.  
  2715.   FIXES
  2716.  
  2717.     The doors are now working properly
  2718.  
  2719.     The loss of global setup information has been fixed when KBBS
  2720.     switches between modules (specifically, the loss of CD ROM setup)
  2721.  
  2722.     A crash problem when overflowing time/date fields (the sysop
  2723.     utilities) has been fixed.
  2724.  
  2725.     Some work has been done to last read mail pointers, personal mail
  2726.     flags, security level movement and the user database editor,
  2727.     indexer and other areas.  If you were having problems with empty
  2728.     users showing up in the user database editor, reindex the users
  2729.     and it they should disappear.
  2730.  
  2731.  
  2732.   ADDITIONS
  2733.  
  2734.     A new path index corruption rebuild utility has been added to
  2735.     put files back online after a major corruption or major hard
  2736.     disk reconfiguration.
  2737.  
  2738.     A utility to delete all files in the index with a specific CD
  2739.     ROM id has been added... to take old CD ROM's out of the index.
  2740.  
  2741.  
  2742.  
  2743. Z.1817
  2744. ------
  2745.  
  2746.   ADDITIONS
  2747.  
  2748.     KBBSDIAG has been integrated into the sysop utilities archive
  2749.     and is now activated by typing KBBS DIAG at the prompt.  It's
  2750.     a faster version that the old KBBSDIAG, but it still produces
  2751.     a KBBSDIAG.LOG that we request that people with problems upload
  2752.     to us.
  2753.  
  2754.     Support for the TRIBBS.SYS door drop file has been added
  2755.  
  2756.     To assist some old-Rockwell chip based modems send commands
  2757.     properly, the COMMANDWRITE command has been altered to send
  2758.     the characters to the modem with a 3 millisecond delay between
  2759.     each character.  No other modem I/O is affected by this.
  2760.  
  2761.     The ALT-R "Run Door" key in the door setup will now execute the
  2762.     SEQ's defined to execute before and after the door, so the
  2763.     sysop can get the full picture of the process.
  2764.  
  2765.  
  2766.   FILE AREA AND UTILITIES
  2767.  
  2768.     File flagging should work in long lists the wrap back to "A" and
  2769.     previous wrong-file flagging has been fixed (run the Name Index
  2770.     rebuilder if it's still happening on your system with this version).
  2771.  
  2772.     A lot of recoded utilities are being placed online in this version,
  2773.     specifically the rebuilders and some of the online stuff in order
  2774.     to add stability and speed to these areas.  New utilities will be
  2775.     added in the following version(s).
  2776.  
  2777.     NOW RELIABLE:  The COMPLETE REBUILD has been recoded for higher
  2778.     speed and MUCH better reliability... especially to NOT corrupt
  2779.     the original copy of the index.
  2780.  
  2781.     A more reliable CD ROM identifier has been added, which will better
  2782.     distinguish between different disks.  The odds of two CD ROM's
  2783.     reporting the same ID number is now one in 16 million.  An ID
  2784.     override has been added just in case you still beat those odds.
  2785.     A utility has been added to quickly change the ID in the index
  2786.     for all of the files on a CD ROM.
  2787.  
  2788.     A toggle has been added to the Global Toggles to set AUTOMATIC
  2789.     or MANUAL CD ROM scanning.
  2790.  
  2791.       1. In Automatic scanning mode, KBBS uses its internal CD ROM
  2792.          ID method for determining which CD ROM is online.
  2793.  
  2794.       2. In Manual scanning mode, the sysop may assign CD ROM ID's
  2795.          and a picklist screen is used to assign which CD ROM is
  2796.          currently in the drive(s).
  2797.  
  2798.     All CD ROM utilities and setups have been put in the index menus,
  2799.     even though they are settings that apply to all file indexes.
  2800.  
  2801.     A new utility has been added to the CD ROM section to change files
  2802.     in the index to point to a different CD ROM drive.  Because this
  2803.     version changes the CD ROM identification method, you will need
  2804.     to run this utility on all of your CD ROMs.  (It's pretty fast)
  2805.     And your CD ROM's should stay online properly from now on.
  2806.  
  2807.  
  2808.   IMPROVEMENTS
  2809.  
  2810.     The pointers are now updated upon logoff after a QWKcrash session
  2811.     to save QWKcrash callers the extra seconds it takes to update
  2812.     pointers after the packet has been sent.
  2813.  
  2814.     Drives A and B are ignored by the file utilities, to prevent the
  2815.     "insert disk for drive B:" problem on single drive systems.
  2816.  
  2817.  
  2818.   BUG FIXES
  2819.  
  2820.     The ALT-F1 DOS Shell will now return properly without messing
  2821.     up the screen.
  2822.  
  2823.     An additional fix keeps pointers updated actively while a user
  2824.     reads online.  This should wrap up this problem once and for all.
  2825.  
  2826.     Time left is now properly updated if a user drops carrier while
  2827.     in a door or other external process.
  2828.  
  2829.     The local run option (ALT-R) in the door editor is now linked
  2830.     and running.
  2831.  
  2832.     The problem with long FTS origin lines has been fixed.
  2833.  
  2834.     The last read pointers are now being updated properly for
  2835.     callers that read mail online.
  2836.  
  2837.     Conference are now deleted and marked as deleted properly.
  2838.  
  2839.     File locking problems in various places has been fixed.
  2840.  
  2841.     The color attribute is now forced to $07 when shelling to DOS.
  2842.  
  2843.     SHARE is now being detected properly (although it is used when
  2844.     no other record locking driver is detected, KBBS would run
  2845.     without it and reporting "Node x in use")
  2846.  
  2847.     The DCE rate is now properly placed in the DOOR.SYS file.
  2848.  
  2849.  
  2850.   NEW SEQ COMMANDS AND FUNCTIONS
  2851.  
  2852.     LOADUSER( <username>, <aliasmode> ) :boolean   (function)
  2853.  
  2854.       Loads a user record, pointers and setup files
  2855.  
  2856.       <username> is of type string
  2857.       <aliasmode> is of type boolean
  2858.  
  2859.       Searches for and finds the user <username>.  If found, the
  2860.       current user record, pointers and setup files are updated to
  2861.       disk, and the user record, pointers and setup files for the
  2862.       specified user are loaded, becoming the user that's currently
  2863.       logged in and online.  Modifications to the user variables
  2864.       are then made to the newly loaded user's record, pointers and
  2865.       setup files.
  2866.  
  2867.       If <aliasmode> is TRUE, KBBS assumes <username> is an ALIAS,
  2868.       otherwise <username> is a REAL NAME.  This function returns
  2869.       TRUE of the user was found in the database and the user's
  2870.       record, pointer and setup files were loaded.  If not
  2871.       successful, no user record will be loaded.
  2872.  
  2873.       NOTE:  For replacement login sequences, simply loading a user
  2874.              with this function does not complete the login process!
  2875.              To complete the login, you must call the STARTUSER
  2876.              command, which loads the security level and session
  2877.              startup values.
  2878.  
  2879.     FIRSTUSER :boolean   (function)
  2880.     NEXTUSER :boolean   (function)
  2881.  
  2882.       Loads user records, pointers and setup files sequentially.
  2883.  
  2884.       These are functional equivilents to LOADUSER, except FIRSTUSER
  2885.       loads the first user in the database, and calls to NEXTUSER
  2886.       load the next user after the previous FIRSTUSER or NEXTUSER
  2887.       call.  Both functions return TRUE if the operation was
  2888.       successful.  FIRSTUSER should always return TRUE, unless the
  2889.       user database is corrupted or deleted.
  2890.  
  2891.     STARTUSER;
  2892.  
  2893.       Initializes the security level and session startup values
  2894.       for a user that has just logged in.  Time is reduced for
  2895.       upcoming events, and security access to the current node
  2896.       and schedule is checked.  This command MUST be called
  2897.       after the LOADUSER function if LOADUSER is used to replace
  2898.       the standard LOGIN commands.
  2899.  
  2900.     UPDATEUSER;
  2901.  
  2902.       For data integrity, this command saves the current user's
  2903.       record, pointers and setup files to disk.  Because this
  2904.       data is updated to disk upon logoff, this isn't necessary
  2905.       except in conditions where power outages, etc, might cause
  2906.       the system to go offline prior to a proper logoff.  This
  2907.       command has no effect if the user record, pointers or
  2908.       setup files have not been modified.  This command is ignored
  2909.       if the current user online is new and an ADDUSER command
  2910.       hasn't been executed.
  2911.  
  2912.     DELETEUSER;
  2913.  
  2914.       Deletes the current user from the user database and clears
  2915.       the current user record (i.e. no user will be online after
  2916.       this command is issued).  This command has no effect if no
  2917.       user is currently online.
  2918.  
  2919.     WRITEUSERLIST( <filepath>, <aliasmode> );
  2920.  
  2921.       <filepath> is of type path.
  2922.  
  2923.       Creates a text file named <filepath> and outputs a sorted list
  2924.       of user names to the file, closing it afterward.  This is the
  2925.       only method for quickly obtaining a sorted list of the users
  2926.       in the database.
  2927.  
  2928.     DROPFILE( <bbstype>, <destination> ) :path   (function)
  2929.  
  2930.       <bbstype> is of type char
  2931.       <destination> is of type path
  2932.  
  2933.       Creates a door drop file of type <bbstype> at <destination>.
  2934.       The following are the possible values for <bbstype>:
  2935.  
  2936.         '1'  DOORFILE.SR
  2937.         '2'  DOOR.SYS      (52 line)
  2938.         '3'  PCBoard v14.x (PCBOARD.SYS, PCBOARD.DAT and USERS)
  2939.         '4'  WildCat 2.0   (CALLINFO.BBS)
  2940.         '5'  RBBS          (DORINFO1.DEF)
  2941.         '6'  WWIV          (CHAIN.TXT)
  2942.         '7'  TriBBS        (TRIBBS.SYS)
  2943.  
  2944.       This function returns the full path to the drop file, if
  2945.       successful.
  2946.  
  2947.     WRITETEXTCH(...)
  2948.  
  2949.       This is functionally equivilent to WRITETEXT, except a carriage-
  2950.       return and linefeed are not added to the file, as with WRITETEXT.
  2951.       See WRITETEXT
  2952.  
  2953.     NUMCDS :integer   (function)
  2954.  
  2955.       Returns the number of CD ROMs defined in the CD ROM setup.
  2956.       Use CDONLINE and CDNAME to access information about each
  2957.       CD ROM.
  2958.  
  2959.     CDNAME( <num> ) :string   (function)
  2960.  
  2961.       <Num> is of type integer
  2962.  
  2963.       Returns the name of CD ROM number <num>.  <num> must be an
  2964.       integer from 1 to NUMCDS.  If <num> is out of range, this
  2965.       function will return an empty string.
  2966.  
  2967.     CDONLINE( <num> ) :boolean   (function)
  2968.  
  2969.       Returns the online status CD ROM number <num>.  <num> must
  2970.       be an integer from 1 to NUMCDS.  If <num> is out of range,
  2971.       this function will return FALSE.
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.  
  2978. Z.1816
  2979. ------
  2980.  
  2981.   ADDITIONS
  2982.  
  2983.     A rebuild/degragment utility has been added to conference
  2984.     maintenance to rebuild corrupted setup and net status files (the
  2985.     new format files) and to defragment them if they seem to be
  2986.     running a little slow.
  2987.  
  2988.     The current conference will appear on the conference list
  2989.     regardless of whether it is configured for scanning.  This will
  2990.     help sysops that use the "Join" command to find the conference
  2991.     they joined on systems using the CONFLIST in the read area.
  2992.  
  2993.     A color editor has been added for changing the colors in the
  2994.     sysop utilities.  (See Setup, Global)
  2995.  
  2996.  
  2997.   BUG FIXES
  2998.  
  2999.     We found that systems with low conventional and XMS memory
  3000.     didn't upgrade properly from pre-15 to Alpha 15.  If you
  3001.     suspect you're having pointer, setup or net status file
  3002.     problems, rebuild those in conference maintenance with this
  3003.     version and it should be fixed.
  3004.  
  3005.     We finally found a clue to the Zmodem autostart problem some
  3006.     people are having...  some terminals are watching for the "rz"
  3007.     signal instead of the 00000 etc. block start, and they only
  3008.     look for the "rz" if it's at the beginning of the line.  KBBS
  3009.     now sends a carriage return before the "rz" to help those
  3010.     terminals see light.
  3011.  
  3012.     Although the new recoded file utilities aren't finished yet,
  3013.     the CD ROM online/offline problem should be working properly
  3014.     in this version.  If not, we'll release a patch fix (we're
  3015.     unable to test it properly here).
  3016.  
  3017.     Local mode drop files will use 19200 for baud rate, regardless
  3018.     of the current modem or node.  (We chose 19200 becase 0 caused
  3019.     problems with some doors, and 38400 with others.  19200 seems to
  3020.     work everywhere, unless someone finds otherwise)
  3021.  
  3022.     The DOS program execution code has been re-written and should
  3023.     work in finding the path, swapping the proper code and data
  3024.     segments and returning FROM the executed program without
  3025.     problems...  watch in case we're mistaken on this.
  3026.  
  3027.     The Internode pipeline is now being launched properly.
  3028.  
  3029.     The last read mail pointers are now being updated properly on exit.
  3030.  
  3031.     On low memory systems, the pointers are now being properly updated
  3032.     without crashing or ignoring the update request.
  3033.  
  3034.     KBBS EXPORT will now properly append to an existing .REP.  This also
  3035.     affects QWK packet scanning on some low memory systems, where the
  3036.     resulting QWK packet was corrupted, or messages were missing.
  3037.  
  3038.     The upload credit for time is fixed (it's not giving thousands
  3039.     of minutes of time credit for uploads anymore)
  3040.  
  3041.     The drop-to-DOS in the sysop utilities has been fixed to
  3042.     not mess up the interprogram screens.
  3043.  
  3044.     The ALT-V in the File Utilities has been fixed.
  3045.  
  3046.     KBBS will now accept FLAGPATH() parameters with wildcards, and will
  3047.     not duplicate names in the batch (which also keeps FTS conflicts
  3048.     from occurring).
  3049.  
  3050.     The LOCAL=x parameter has been repaired.
  3051.  
  3052.     The F1 popup help should work now in the sysop utilities.
  3053.  
  3054.  
  3055.